/*
#include <stdio.h>
#include <algorithm>
#include <queue>
using namespace std;
int n,m, arr[15][15]={}, br[10][10]={},f=0,l=0,k[15]={},v[15][15]={};
int o[10][10]={},z;
priority_queue<int> pq;
void g(int a, int b, int c){
v[a][b] = 1;
if(a < 1 || b < 1 || a > n || b > m) return;
if(arr[a][b] != 10) return;
arr[a][b] = c;
if(v[a+1][b] == 0) g(a+1,b,c);
if(v[a-1][b] == 0) g(a-1,b,c);
if(v[a][b+1] == 0) g(a,b+1,c);
if(v[a][b-1] == 0) g(a,b-1,c);
}
void d1(int a, int b, int c, int t){
if(b > m) return;
if(arr[a][b] == c) return;
if(arr[a][b] != 0){
if(l == 0 || l > t){
l = t;
f = arr[a][b];
}
return;
}
d1(a,b+1,c,t+1);
}
void d2(int a, int b, int c, int t){
if(b < 1) return;
if(arr[a][b] == c) return;
if(arr[a][b] != 0 && arr[a][b] != c){
if(l == 0 || l > t){
l = t;
f = arr[a][b];
}
return;
}
d2(a,b-1,c,t+1);
}
void d3(int a, int b, int c, int t){
if(a > n) return;
if(arr[a][b] == c) return;
if(arr[a][b] != 0 && arr[a][b] != c){
if(l == 0 || l > t){
l = t;
f = arr[a][b];
}
return;
}
d3(a+1,b,c,t+1);
}
void d4(int a, int b, int c, int t){
if(a < 1) return;
if(arr[a][b] == c) return;
if(arr[a][b] != 0 && arr[a][b] != c){
if(l == 0 || l > t){
l = t;
f = arr[a][b];
}
return;
}
d4(a-1,b,c,t+1);
}
void pqq(){
for(int i = 1; i <= z; i++){
for(int j = 1; j <= z; j++){
if(i == j) continue;
if(br[i][j] > 0) pq.push(100*(10-br[i][j])+10*i+j);
}
}
}
void as(int b, int c){
for(int i = 1; i <= z; i++){
if(o[b][i] == 1){
o[i][c] = 1;
o[c][i] = 1;
}
if(o[c][i] == 1){
o[i][b] = 1;
o[b][i] = 1;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
scanf("%d", &arr[i][j]);
if(arr[i][j] == 1) arr[i][j] = 10;
}
}
z = 1;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
if(arr[i][j] == 10){
g(i,j,z);
z++;
}
}
}
z--;
//
//for(int i = 1; i <= n; i++){
//for(int j = 1; j <= m; j++){
//printf("%d ",arr[i][j]);
//}
//printf("\n");
//}
//
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
if(arr[i][j] != 0){
d1(i,j+1,arr[i][j],0);
if(l > 1){
//printf("%d %d %d %d %d\n",i,j,arr[i][j],f,l);
if((br[arr[i][j]][f] == 0 || br[arr[i][j]][f] > l) && br[f][arr[i][j]] == 0){
br[arr[i][j]][f] = l;
}
//printf("%d\n",br[arr[i][j]][f]);
}
l = 0;
f = 0;
d2(i,j-1,arr[i][j],0);
if(l > 1){
//printf("%d %d %d %d %d\n",i,j,arr[i][j],f,l);
if((br[arr[i][j]][f] == 0 || br[arr[i][j]][f] > l) && br[f][arr[i][j]] == 0){
br[arr[i][j]][f] = l;
}
//printf("%d\n",br[arr[i][j]][f]);
}
l = 0;
f = 0;
d3(i+1,j,arr[i][j],0);
if(l > 1){
//printf("%d %d %d %d %d\n",i,j,arr[i][j],f,l);
if((br[arr[i][j]][f] == 0 || br[arr[i][j]][f] > l) && br[f][arr[i][j]] == 0){
br[arr[i][j]][f] = l;
}
//printf("%d\n",br[arr[i][j]][f]);
}
l = 0;
f = 0;
d4(i-1,j,arr[i][j],0);
if(l > 1){
//printf("%d %d %d %d %d\n",i,j,arr[i][j],f,l);
if((br[arr[i][j]][f] == 0 || br[arr[i][j]][f] > l) && br[f][arr[i][j]] == 0){
br[arr[i][j]][f] = l;
}
//printf("%d\n",br[arr[i][j]][f]);
}
l = 0;
f = 0;
}
}
}
int y = z-1, ans = 0;
if(y <= 2){
for(int i = 1; i <= z; i++){
for(int j = 1; j <= z; j++){
k[br[i][j]]++;
}
}
for(int i = 2; i <= 10; i++){
if(k[i] > 0){
if(y - k[i] > 0){
ans += k[i] * i;
y -= k[i];
}
else{
ans += y * i;
y = 0;
break;
}
}
}
if(y == 0) printf("%d",ans);
else printf("-1");
}
else{
pqq();
int ll=0,r,aa,bb,cc;
if(!pq.empty()){
r = pq.top();
pq.pop();
aa=10-r/100, bb=(r/10)%10, cc=r%10;
o[bb][cc]=1;
o[cc][bb]=1;
y--;
ll = aa;
//printf("%d %d %d\n",aa,bb,cc);
}
while(!pq.empty()){
r = pq.top();
pq.pop();
aa=10-r/100;
bb=(r/10)%10;
cc=r%10;
//printf("%d %d %d\n",aa,bb,cc);
if(o[bb][cc]==1) continue;
o[bb][cc]=1;
o[cc][bb]=1;
as(bb,cc);
y--;
ll += aa;
if(y == 0) break;
else if(pq.empty()){
pqq();
}
}
if(y == 0) printf("%d",ll);
else printf("-1");
}
return 0;
}
*/
#include <stdio.h>
long long int pn[50000]={};
void p(int a){
if(a == 1) return;
int i;
for(i = 1; pn[i]!=0; i++){
if(a % pn[i] == 0) return;
}
pn[i] = a+pn[i-1];
}
int main(){
long long int n,t=0;
scanf("%lld",&n);
pn[1] = 2;
pn[2] = 3;
for(int i = 5; pn[49999]==0; i++){
p(i);
}
for(int i = 0; i<49999;i++){
for(int j = i+1; j<=49999;j++){
if(pn[j]-pn[i]>n) break;
if((pn[j]-pn[i])==n){
t++;
}
printf("%d %d %d\n",i,j,pn[j]-pn[i]);
}
}
printf("%lld",t);
}