题意:
给一个数n,求有多少组连续的素数和能够凑成这个数n。
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <stack>
#include <vector>
#include <queue>
#include <map>
#include <climits>
#include <cassert>
#define LL long long
using namespace std;
const int inf = 0x3f3f3f3f;
const double eps = 1e-8;
const double pi = 4 * atan(1.0);
const double ee = exp(1.0);
const int maxn = 10000 + 10;
//int prime[maxn];
//bool isprime[maxn];
//int nprime;
//void doprime()
//{
// nprime = 0;
// memset(isprime, true, sizeof(isprime));
// for (int i = 2; i < maxn; i++)
// {
// if (isprime[i])
// {
// prime[++nprime] = i;
// for (int j = 2 * i; j < maxn; j += i)
// {
// isprime[j] = false;
// }
// }
// }
//}
//
//int a[maxn];
//
//void init()
//{
// doprime();
// cout << nprime << endl;
// memset(a, 0, sizeof(a));
// for (int i = 1; i <= nprime; i++)
// {
// for (int s = i; i <= nprime; i++)
// {
// int sum = prime[i];
// a[sum]++;
// for (int j = i + 1; j <= nprime; j++)
// {
// sum += prime[j];
// if (sum <= 10000)
// a[sum]++;
// else
// break;
// }
// }
// }
// for (int i = 0; i <= 10000; i++)
// {
// printf("%d,", a[i]);
// }
//}
int a[] = {0,0,1,1,0,2,0,1,1,0,1,1,1,1,0,1,0,2,1,1,0,0,0,2,1,0,1,0,1,1,1,2,0,0,0,0,2,1,0,1,0,3,1,1,0,0,0,1,1,1,0,0,1,2,0,0,1,0,1,2,2,1,0,0,0,0,0,2,1,0,0,2,2,1,0,1,0,1,1,1,0,0,0,3,1,0,0,0,1,1,2,0,0,0,0,1,0,2,1,0,2,2,1,1,0,0,0,1,0,2,0,0,2,1,0,0,0,0,0,2,2,1,0,0,1,0,0,2,1,1,0,2,1,0,0,0,0,1,2,2,0,0,0,2,1,0,0,0,0,1,1,1,2,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,1,2,0,0,0,0,0,1,2,2,0,0,1,0,1,2,0,0,0,1,1,1,0,1,0,3,1,3,0,0,1,0,2,0,0,0,0,0,2,2,0,0,0,0,1,0,0,0,1,2,1,3,0,0,0,1,2,1,0,0,0,2,0,1,1,0,1,1,3,1,0,1,0,0,0,0,0,0,0,3,1,1,0,0,0,1,2,0,0,0,0,2,1,0,0,0,1,2,1,2,1,0,0,0,2,1,0,1,1,3,0,1,0,0,0,3,1,0,1,0,0,1,0,0,0,0,0,0,2,1,0,0,2,0,1,1,1,0,0,5,0,1,0,0,0,1,1,1,1,0,0,2,1,0,1,0,1,1,2,2,0,0,0,0,0,1,0,0,3,1,0,0,0,0,0,1,1,2,0,1,1,2,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,3,2,2,0,0,1,0,0,2,0,1,1,1,2,0,0,0,0,1,2,0,0,0,0,2,1,1,0,1,0,3,0,0,0,0,0,1,2,1,2,0,1,0,0,0,0,0,0,1,1,2,0,1,1,1,0,0,0,0,1,2,1,1,2,1,0,0,1,3,1,0,1,2,0,0,0,0,0,2,1,0,0,0,0,0,2,2,0,0,1,1,2,2,0,0,0,1,1,0,0,1,1,2,1,0,0,0,0,2,2,0,0,0,1,0,0,2,0,0,0,3,2,1,0,0,1,1,0,2,0,1,0,2,0,0,0,0,2,1,3,0,0,0,0,1,0,1,0,1,1,1,1,2,0,0,0,1,0,0,0,0,1,2,1,0,0,0,0,1,2,1,0,0,0,0,1,1,1,0,0,2,2,1,0,0,1,1,2,2,0,0,1,2,1,1,1,0,1,1,0,1,0,0,0,0,2,1,0,0,1,2,1,1,0,0,0,2,0,1,0,0,0,3,1,0,1,0,1,1,1,1,0,0,0,0,1,2,0,0,0,1,1,1,0,0,0,2,1,1,2,0,1,0,1,1,0,0,0,1,2,2,0,1,1,2,1,1,1,1,0,1,0,1,0,0,0,2,1,0,0,0,0,1,1,0,0,0,0,2,3,2,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,2,0,2,0,0,2,2,2,0,0,0,0,2,1,2,0,0,0,1,2,0,0,0,1,2,2,0,0,0,0,2,0,1,1,0,2,1,2,0,0,0,0,2,0,1,0,0,2,1,1,1,0,0,0,1,2,3,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,2,0,1,0,1,2,2,0,0,1,0,1,1,0,1,1,1,2,0,0,0,0,1,2,1,0,0,0,0,2,2,0,2,0,2,0,0,0,0,1,2,1,0,1,0,1,3,0,0,0,0,0,1,1,2,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,2,1,2,1,0,0,2,2,0,0,0,0,2,1,2,0,0,0,0,2,0,0,0,0,0,1,1,0,0,0,3,0,1,1,0,0,5,3,0,0,0,0,1,1,0,2,0,1,0,0,1,0,0,1,2,1,3,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,2,1,1,0,0,0,2,2,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,2,2,1,3,0,0,0,1,1,1,0,0,0,3,1,0,0,0,2,2,0,0,0,0,0,2,1,0,0,0,1,0,2,3,0,1,2,0,2,1,0,0,0,1,0,0,0,0,0,2,1,1,0,0,0,3,0,1,0,0,1,0,3,3,0,0,0,0,0,1,0,0,0,1,2,0,0,0,0,0,1,1,0,0,3,1,0,1,0,0,0,2,1,1,0,1,0,2,1,1,0,0,1,1,2,2,0,0,0,0,0,1,2,0,0,2,1,0,0,0,0,2,1,1,0,0,1,1,1,1,1,0,3,3,0,2,1,0,0,2,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,2,0,0,1,1,1,1,1,1,1,0,0,0,1,1,3,0,0,0,2,3,0,0,0,0,1,0,0,1,0,2,1,0,1,0,1,2,0,0,2,0,0,0,0,0,1,0,0,1,2,1,2,0,0,0,2,2,0,0,0,1,0,0,0,1,0,0,4,2,2,1,0,1,0,0,1,0,1,0,2,4,0,0,0,0,2,0,2,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,3,0,0,0,0,1,2,2,0,0,1,0,1,1,1,0,0,0,0,1,1,1,0,0,2,2,2,1,0,1,1,0,1,1,1,0,2,1,0,0,0,0,2,1,1,0,0,0,0,3,1,0,0,0,0,2,0,0,0,0,2,1,2,2,1,0,1,1,0,0,0,0,2,0,0,1,0,1,1,1,1,0,0,0,2,2,0,0,0,1,1,1,1,1,2,0,3,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,2,0,0,0,1,0,0,0,1,2,3,0,1,0,0,0,1,4,2,1,0,0,0,0,1,0,0,1,1,1,0,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,2,2,2,0,0,1,1,0,0,0,0,1,3,2,0,1,0,1,4,0,1,0,1,0,1,1,0,1,0,0,0,1,3,0,0,0,0,1,0,0,0,0,1,3,0,0,1,1,0,0,1,0,0,1,1,1,1,0,0,1,2,1,1,0,0,0,2,0,0,0,0,2,0,1,2,0,0,0,1,2,1,0,0,0,3,1,0,0,0,0,3,0,2,0,0,1,0,1,1,0,0,1,1,2,1,0,0,0,1,0,2,1,0,0,1,2,0,0,0,0,0,2,1,1,0,0,2,0,1,2,1,2,1,2,2,1,1,0,2,1,1,0,0,0,3,2,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,3,0,0,0,0,1,0,1,1,1,0,0,3,3,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,1,2,0,0,1,0,2,1,0,0,2,3,0,1,0,0,0,2,2,1,0,0,1,1,0,1,0,0,2,1,0,0,1,0,1,0,0,2,0,0,0,2,1,1,1,0,2,0,0,2,0,1,0,0,2,1,0,0,0,2,0,1,0,0,1,3,0,2,0,1,0,2,0,0,0,0,1,1,2,2,1,0,0,0,2,1,0,0,0,0,1,0,0,0,1,2,0,0,0,0,0,3,2,2,0,0,0,0,4,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,2,1,1,1,0,0,1,1,0,0,1,0,1,1,1,0,0,0,0,0,2,0,1,0,2,2,1,0,0,0,1,0,1,0,0,0,2,2,0,0,1,1,1,3,0,2,1,0,2,2,2,1,0,1,1,2,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,1,2,2,0,0,1,1,2,3,0,0,0,1,2,1,0,0,0,0,2,0,0,0,0,0,1,0,0,0,1,2,0,1,0,1,0,0,0,1,1,0,1,2,3,1,0,2,0,3,1,0,0,0,0,1,1,3,1,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,1,0,0,1,0,3,1,0,0,0,1,1,2,2,0,0,1,0,1,1,0,0,0,1,0,1,0,0,2,1,2,2,0,2,0,0,4,0,0,0,0,2,0,2,0,0,0,0,1,2,0,1,1,1,2,2,0,0,0,1,1,1,0,0,0,0,0,0,0,0,2,2,0,2,0,0,0,2,1,0,0,0,2,3,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,1,0,2,0,0,0,2,2,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,2,2,0,4,0,0,0,0,3,0,0,1,2,0,0,0,0,0,0,2,0,0,0,1,0,2,2,0,0,0,1,2,2,1,1,1,0,0,1,2,2,0,0,0,0,2,1,1,0,1,1,2,0,0,2,1,0,0,1,0,0,0,0,3,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,3,0,1,1,0,2,1,1,1,0,0,1,1,3,0,0,0,0,1,1,1,0,0,1,1,1,2,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,2,0,0,1,0,0,1,2,1,0,1,0,2,0,2,1,0,1,1,1,1,0,0,0,0,1,0,0,0,0,3,2,1,0,0,0,2,0,0,1,0,2,3,2,2,0,0,1,1,0,0,0,0,1,1,2,1,0,1,0,2,0,1,2,0,0,0,0,1,0,0,0,2,1,2,1,0,1,1,1,0,0,0,1,1,0,2,1,0,1,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,3,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,0,2,1,0,1,3,0,0,1,1,1,2,0,0,1,2,1,1,0,0,1,0,0,2,0,0,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,2,1,0,0,1,1,0,1,0,1,1,2,2,1,1,0,0,1,0,0,1,1,0,0,2,0,0,1,3,0,2,0,1,0,2,1,1,1,0,0,0,2,1,0,0,0,0,1,2,1,0,0,0,1,1,0,0,1,2,1,0,0,1,0,3,3,1,0,1,1,1,1,2,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,2,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,2,2,0,1,1,2,1,0,0,0,1,3,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,2,1,1,1,0,0,2,1,1,2,0,1,1,3,0,1,0,0,1,4,1,0,0,0,1,2,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,3,0,1,1,0,1,2,1,1,0,1,0,0,1,0,1,0,0,1,3,1,1,0,1,2,0,2,0,1,0,1,1,0,1,0,1,0,0,2,1,0,0,2,2,1,0,0,0,0,1,1,1,0,0,1,0,1,1,1,0,2,1,1,2,0,0,0,2,1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,0,3,2,1,0,0,0,0,1,0,0,0,0,1,0,2,0,1,0,0,1,1,0,0,1,1,0,2,2,0,1,0,0,1,0,0,0,2,0,0,0,0,1,2,1,1,1,0,1,2,3,1,0,0,0,0,2,1,1,0,0,2,0,1,0,0,1,2,1,0,0,0,1,3,1,0,2,0,2,0,3,2,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,2,1,1,0,0,0,1,1,0,2,0,0,0,1,1,1,0,1,2,0,0,0,0,1,1,0,0,0,0,1,2,2,0,0,0,0,0,1,2,0,1,0,0,1,4,1,0,0,1,1,1,0,0,1,2,1,1,0,0,0,1,0,0,0,0,0,0,3,1,0,1,0,2,1,2,0,0,0,0,1,1,0,0,1,1,1,4,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,3,1,0,0,0,1,1,2,0,0,0,1,1,2,0,0,0,0,1,0,0,0,1,1,1,3,0,0,0,1,0,2,0,0,2,1,1,1,0,1,0,2,0,1,0,0,2,1,2,0,0,1,0,2,1,1,0,0,2,1,1,1,0,0,1,1,0,1,0,0,1,3,0,0,1,0,0,0,1,2,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,2,2,0,1,1,1,0,2,1,1,0,0,2,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,3,0,1,0,2,2,1,0,1,0,1,1,1,1,1,0,0,0,0,4,1,0,0,0,1,1,0,1,1,0,4,2,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,1,3,1,1,0,1,2,0,0,0,0,0,3,1,0,1,0,0,1,2,1,0,0,0,2,1,1,2,0,2,1,1,1,1,0,0,0,1,1,0,1,2,3,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,2,2,0,0,0,3,2,0,0,0,0,3,1,1,1,0,2,1,1,2,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,2,0,0,2,0,1,1,1,1,0,1,0,2,1,1,0,0,0,1,0,1,0,0,3,1,1,1,0,0,0,1,0,2,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,3,2,1,1,2,0,0,0,0,2,0,1,1,1,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,2,2,1,1,2,1,1,2,2,0,0,1,0,1,0,0,1,2,0,2,0,2,0,1,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,2,0,0,0,0,0,3,1,3,0,0,0,1,2,0,0,1,0,0,0,1,0,0,0,3,1,1,0,0,0,0,1,1,0,0,0,0,2,1,0,0,2,0,0,0,1,0,0,1,2,1,0,0,3,3,1,1,0,0,0,0,1,1,0,0,0,1,1,3,0,0,0,1,0,1,1,1,0,2,1,1,0,1,0,0,4,0,0,0,0,1,1,0,0,0,2,2,0,0,0,0,0,1,1,1,0,2,0,1,1,1,0,1,0,0,0,1,0,0,3,0,0,0,0,1,2,0,1,0,0,1,0,0,1,2,1,1,2,2,1,2,0,0,1,2,1,1,0,2,0,3,4,0,2,0,0,0,0,2,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,2,1,1,0,0,0,2,3,1,0,0,1,1,0,1,0,1,2,0,0,2,0,0,1,0,2,1,1,2,0,2,1,0,0,0,0,2,2,1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,3,2,2,1,0,0,2,0,0,0,1,0,1,0,1,2,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,2,0,0,0,0,0,2,1,0,1,0,4,2,2,0,0,0,0,2,3,0,0,1,1,0,2,0,0,1,1,3,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,2,1,0,0,0,0,2,0,1,2,0,1,1,1,0,0,0,1,2,0,2,1,1,1,0,1,1,0,0,0,0,0,2,2,0,0,2,2,1,1,0,1,0,2,0,2,0,0,1,0,1,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,1,0,2,2,0,0,3,1,0,0,0,0,1,0,1,2,0,1,2,1,3,0,0,0,0,0,0,1,0,0,2,2,1,0,0,0,2,1,0,1,0,1,2,0,2,0,1,1,0,0,2,0,0,1,0,0,0,1,0,0,1,1,1,1,2,0,0,2,0,0,0,0,0,1,2,0,0,0,0,2,0,1,0,1,2,0,1,0,0,0,2,3,1,2,1,0,2,0,0,0,1,0,0,1,2,0,0,1,0,0,2,0,0,1,0,2,1,1,0,0,3,0,0,0,1,0,1,2,0,0,1,1,1,2,2,0,1,2,0,2,2,1,0,0,0,0,2,0,0,0,2,0,0,0,0,0,1,2,0,1,0,1,2,0,1,0,0,0,0,1,0,1,1,0,3,0,1,0,0,0,1,1,0,0,0,0,2,0,0,0,1,1,0,0,2,0,2,2,0,2,2,1,0,1,2,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,3,2,2,0,0,1,0,1,0,0,0,0,2,2,0,0,0,0,1,1,2,1,0,0,2,1,0,0,4,1,1,2,0,0,0,2,0,0,1,0,0,1,1,1,0,0,0,2,0,0,1,0,1,1,1,1,0,1,0,1,0,2,0,0,3,0,0,2,0,0,0,1,1,1,0,0,0,2,1,1,0,0,2,0,1,1,0,0,1,1,0,0,0,0,1,3,1,1,0,1,1,0,1,1,0,2,0,1,1,0,0,1,1,1,0,0,1,0,1,1,1,2,0,0,1,2,0,3,1,0,1,0,0,0,0,0,0,2,1,0,0,0,3,1,3,1,0,0,1,1,1,2,0,0,0,1,1,0,0,0,0,1,0,2,0,0,0,0,0,1,0,0,2,2,2,2,0,0,1,0,0,1,0,0,0,3,0,0,0,0,0,1,0,1,0,1,1,1,1,2,0,0,1,2,0,1,0,0,1,1,1,2,1,0,0,0,0,1,0,0,1,2,1,1,0,1,1,1,2,0,3,0,0,0,0,0,0,0,0,0,1,3,0,0,2,2,0,0,0,0,0,1,0,2,2,0,0,0,1,0,0,1,0,2,1,0,0,0,0,0,2,1,1,0,1,1,2,1,0,1,1,1,0,1,1,1,1,1,2,0,0,3,1,1,0,1,1,1,1,1,1,1,2,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,2,0,0,0,1,1,0,1,0,0,1,1,1,3,0,1,0,2,3,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,2,0,0,1,0,3,1,3,0,0,0,3,1,2,0,1,0,0,1,0,0,0,0,1,3,2,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,2,0,1,0,0,1,1,2,1,1,0,0,2,0,0,0,0,1,1,0,0,0,0,2,1,2,2,1,0,0,2,0,2,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,2,2,0,0,1,1,1,0,0,0,1,0,1,2,0,0,0,0,0,0,0,1,0,1,4,1,0,0,0,1,0,0,1,0,2,2,0,0,0,0,0,3,1,1,0,1,1,0,2,1,0,2,0,2,2,2,1,0,0,0,0,2,0,0,0,2,2,2,1,0,0,1,0,2,0,0,1,2,0,0,0,0,0,2,1,1,0,0,1,1,0,1,1,0,0,2,0,1,0,0,0,0,2,1,3,0,0,1,2,0,2,1,0,2,1,0,0,0,0,0,1,2,0,0,0,1,1,0,0,0,0,1,0,2,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,2,1,1,1,1,1,1,0,1,0,0,0,3,1,1,2,0,0,0,1,0,0,0,0,1,2,1,0,0,0,1,0,2,0,1,0,3,1,3,1,0,0,0,1,1,2,1,0,1,0,0,0,0,0,0,2,0,1,1,1,0,0,2,0,0,0,2,1,0,1,0,0,2,0,0,0,0,1,0,0,1,1,0,0,1,2,2,1,0,0,0,1,0,0,1,1,2,0,2,0,0,1,0,2,0,0,0,0,2,2,3,1,0,1,0,0,1,0,2,1,0,0,1,2,0,1,3,1,0,0,1,0,2,2,2,0,0,0,1,2,0,0,0,0,2,0,0,0,0,1,0,2,0,2,1,0,2,1,1,1,0,0,1,1,0,0,0,0,2,1,0,0,0,0,0,0,2,0,1,2,0,1,3,0,0,0,0,1,1,0,0,0,1,1,2,2,0,1,1,0,0,0,0,0,1,0,0,1,1,0,2,1,0,0,0,0,0,1,0,0,1,0,1,1,3,0,0,0,2,3,0,1,1,0,1,1,2,0,0,1,2,1,1,1,0,0,0,0,0,0,0,0,1,2,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,1,3,1,0,0,1,1,3,0,0,1,1,0,0,0,0,1,2,0,0,2,0,1,0,2,2,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,3,2,2,1,0,0,1,3,1,0,0,0,1,2,2,0,1,0,0,1,1,0,1,1,2,0,1,0,0,1,0,1,1,0,1,1,2,0,0,0,1,0,2,1,1,0,0,0,0,0,0,1,0,0,3,0,0,0,0,2,2,1,1,0,0,1,1,1,0,0,1,2,0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,3,2,0,0,1,2,0,0,2,1,0,0,0,0,0,1,0,3,1,0,2,0,1,2,0,0,0,0,1,0,1,3,0,0,1,2,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,1,2,1,0,1,0,1,1,2,0,0,1,1,2,1,0,0,2,1,0,1,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,3,0,0,0,0,0,0,1,2,1,0,2,1,1,1,0,1,1,0,2,0,0,0,1,2,0,1,0,0,0,1,1,1,0,1,0,2,1,0,0,0,1,0,2,1,1,0,0,2,0,2,0,0,0,2,0,0,1,0,0,2,2,1,2,1,2,2,0,1,1,0,3,2,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,2,4,2,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,2,2,0,1,0,0,1,3,1,1,0,0,0,1,4,0,0,0,0,0,1,0,0,1,2,0,3,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,2,1,0,0,1,1,2,1,0,0,0,1,3,0,0,0,1,0,0,0,0,1,3,0,1,0,0,2,0,0,1,1,3,1,3,2,1,1,0,0,0,1,2,0,0,0,0,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,4,0,0,1,0,3,0,0,0,1,2,1,1,0,0,2,0,1,1,0,0,0,2,2,0,0,1,0,1,2,2,0,0,1,1,0,0,1,0,1,1,4,1,0,0,0,2,0,2,1,0,1,0,2,1,0,2,0,2,2,2,0,2,0,0,0,0,0,0,1,1,0,0,0,0,0,2,1,0,0,0,0,0,2,1,0,0,0,1,1,1,1,0,0,4,1,0,0,0,0,1,2,1,0,1,0,0,0,1,0,1,1,1,0,1,1,0,0,2,3,1,0,0,0,0,1,0,0,0,2,1,2,1,1,1,0,0,0,2,1,1,0,0,1,1,0,0,0,1,3,1,0,1,0,0,0,1,0,1,0,0,1,2,0,0,0,0,2,1,0,0,2,1,0,2,0,1,0,1,1,0,0,2,0,0,0,0,0,0,0,0,3,0,0,1,3,1,0,0,0,1,0,3,2,1,0,1,0,1,0,0,0,0,1,2,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,2,1,2,2,0,0,2,1,2,0,1,0,0,2,1,1,0,0,1,2,0,0,0,0,0,0,2,2,0,1,0,0,2,1,0,0,0,0,1,1,0,1,1,2,1,0,0,2,0,0,1,1,0,0,1,1,2,2,2,0,1,2,0,0,0,0,0,0,0,1,1,1,1,0,0,2,0,0,0,1,1,1,0,0,0,2,2,1,0,0,0,1,1,0,0,0,0,1,1,0,2,0,2,2,0,2,0,0,2,1,0,1,1,2,1,0,1,1,0,0,1,0,0,2,0,0,1,1,1,1,0,2,0,1,1,0,0,0,1,1,3,1,1,0,0,1,1,2,0,0,1,1,1,1,0,0,1,0,1,2,0,0,0,1,1,0,0,0,0,0,2,0,0,0,1,1,0,1,0,1,0,3,1,0,0,0,0,1,1,1,0,0,1,2,0,0,0,0,0,1,2,1,0,1,0,2,0,0,0,1,1,2,2,1,0,0,0,2,1,0,0,0,1,1,2,0,0,0,1,2,2,2,0,0,0,0,0,1,1,0,1,2,0,0,0,0,0,1,0,1,0,1,0,0,2,0,0,1,2,3,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,3,2,1,0,1,2,1,0,1,0,1,0,1,3,2,0,0,2,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,2,0,0,0,0,0,0,1,0,2,1,2,0,0,2,2,2,2,0,0,0,1,0,0,0,0,2,1,1,2,0,0,0,1,0,1,0,0,1,2,1,1,0,0,0,2,1,1,0,1,0,0,0,0,0,0,1,2,2,1,0,1,1,1,0,0,0,0,1,0,0,3,1,0,0,0,1,1,0,1,1,2,1,0,0,1,1,1,1,2,1,0,1,0,2,0,2,1,0,2,1,0,0,0,1,2,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,2,0,1,0,0,0,0,1,1,0,1,0,3,0,0,1,0,0,2,0,0,1,0,1,0,2,1,0,1,4,2,1,0,0,0,0,2,0,1,0,0,0,1,1,0,1,0,0,1,1,2,0,0,0,0,0,0,1,0,2,1,1,1,1,0,1,1,0,0,3,0,1,3,0,0,0,0,0,1,1,1,1,1,1,2,2,2,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,2,1,0,0,0,3,3,1,1,0,0,0,2,0,1,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0,2,1,1,1,1,0,0,1,3,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,3,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,1,2,1,1,0,0,0,2,1,0,1,0,2,1,1,0,0,1,1,2,3,0,0,0,1,0,0,0,0,0,0,0,2,2,0,0,0,1,0,1,1,0,1,0,1,0,0,0,1,0,2,0,0,0,0,1,0,2,0,2,2,3,0,0,1,0,0,2,0,1,0,0,1,0,1,0,1,0,1,4,1,1,0,0,1,0,0,1,0,0,2,2,3,2,1,0,0,0,0,0,0,0,0,2,0,0,2,0,0,2,2,1,0,1,0,0,0,1,0,0,1,0,1,2,1,1,0,3,0,0,1,0,0,2,0,1,0,1,0,0,1,0,0,0,2,1,0,1,0,0,0,2,1,3,0,0,2,0,1,3,1,2,0,1,0,0,0,0,0,1,3,1,0,0,0,1,0,0,0,0,3,1,0,0,0,0,1,2,2,0,1,0,0,2,1,1,0,1,0,1,0,2,0,1,1,0,1,0,1,0,0,2,0,2,0,0,1,1,1,0,0,1,0,1,0,0,3,1,1,1,0,1,0,0,1,2,1,1,1,0,0,1,1,2,1,0,0,0,0,1,0,0,2,2,0,0,1,0,2,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,2,1,0,0,0,2,1,1,0,1,0,0,1,1,1,1,2,1,0,2,1,0,1,1,2,2,0,2,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,3,3,1,0,1,1,1,2,1,0,1,0,1,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,1,1,0,2,2,2,2,0,0,1,2,0,0,2,2,3,0,1,0,0,0,2,0,0,1,1,0,2,0,0,0,0,3,1,3,1,1,1,0,0,2,1,1,0,1,0,0,1,0,0,0,1,0,1,2,0,1,2,0,0,0,0,1,1,2,1,0,1,0,0,0,1,1,1,0,1,0,3,0,0,0,1,1,2,2,0,0,0,1,0,0,1,1,2,1,0,0,0,2,1,1,2,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,1,2,2,0,1,0,1,1,0,1,2,1,0,0,0,1,1,2,1,1,0,1,0,0,1,2,0,0,2,2,1,1,0,0,0,2,0,1,0,1,0,1,1,0,1,0,1,0,0,2,0,0,1,1,0,0,0,0,0,1,3,2,1,0,0,0,0,0,0,1,0,3,1,1,0,0,0,1,0,1,2,1,3,0,4,0,0,0,0,1,2,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,2,2,1,0,0,2,0,0,0,2,0,3,0,1,1,0,0,0,1,0,0,1,0,0,0,0,2,2,1,1,0,2,0,0,0,2,0,2,2,1,0,0,2,0,0,1,1,3,1,1,0,1,1,0,1,0,0,2,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,2,0,1,1,1,0,0,1,1,0,0,0,2,0,0,1,0,2,0,2,1,1,2,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,1,2,3,1,0,0,0,0,0,0,1,0,0,1,0,2,1,0,0,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,2,0,1,0,0,2,1,1,1,1,1,0,0,0,1,0,0,1,2,1,0,0,0,0,0,1,0,0,0,0,1,2,2,0,0,1,1,0,1,0,1,0,0,2,1,1,0,1,2,2,1,1,1,1,0,0,0,1,0,1,2,2,2,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,3,1,1,1,0,0,0,0,1,0,2,0,1,0,2,0,1,0,0,2,0,0,0,1,1,1,0,0,0,0,2,0,1,1,2,0,0,0,0,0,0,1,1,0,2,0,1,2,1,1,2,0,0,0,1,0,0,1,0,0,2,0,3,1,0,0,1,1,0,0,1,2,0,1,1,0,0,0,1,1,1,2,1,2,1,0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,0,0,2,1,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,2,2,0,0,1,1,1,1,1,1,0,0,1,2,0,0,0,0,3,2,0,0,0,1,1,1,1,0,0,0,1,2,1,0,0,0,0,1,0,1,1,1,1,0,0,2,0,0,2,2,2,0,0,0,1,0,1,0,0,1,1,2,1,0,0,0,0,0,1,0,0,0,2,0,0,2,0,0,1,1,0,0,1,0,2,1,1,1,1,0,3,1,2,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,2,1,3,1,1,0,1,0,2,1,0,0,0,0,0,0,2,1,0,0,0,0,1,0,0,1,1,0,3,0,1,1,1,1,0,0,0,2,0,0,1,1,0,1,1,3,2,0,0,1,0,1,0,1,0,0,1,1,1,0,0,2,0,0,1,0,0,1,3,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,2,0,0,0,1,1,1,1,2,1,1,1,1,1,0,0,0,1,1,0,2,0,0,0,0,3,1,1,1,0,0,1,1,3,1,2,0,0,1,0,2,1,0,1,0,2,0,0,0,0,1,2,0,0,2,3,2,1,0,0,0,0,0,1,1,2,0,0,1,2,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,0,0,2,1,0,0,2,1,1,2,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,2,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,2,0,0,0,2,1,2,0,1,0,1,2,0,2,1,1,2,0,0,1,0,0,0,1,0,1,0,3,1,1,0,0,0,1,3,0,1,1,1,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,2,0,0,1,0,1,0,1,0,0,2,0,2,1,0,1,3,0,0,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,1,2,1,2,1,0,0,2,0,2,2,1,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,0,2,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,2,0,1,0,1,0,0,1,0,0,1,2,2,1,0,2,0,0,0,0,1,0,2,3,2,2,0,2,1,0,1,3,3,1,0,1,0,0,0,0,0,1,2,1,0,0,1,2,0,1,0,0,0,0,1,0,0,0,2,1,2,0,0,0,0,4,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,1,3,1,0,0,0,1,0,1,0,2,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,2,1,1,0,1,1,0,1,1,0,0,0,1,0,1,2,0,1,1,1,0,0,2,1,0,1,0,0,2,1,1,0,2,0,0,1,1,1,0,1,1,2,1,0,0,0,1,2,1,2,0,0,0,1,0,2,1,1,1,1,0,2,0,1,1,0,0,0,0,0,1,2,1,1,0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,2,1,0,0,0,0,0,0,1,1,3,1,2,0,0,0,3,0,0,2,1,0,2,1,0,0,0,0,1,0,2,2,0,3,0,0,1,0,1,0,1,0,1,1,0,2,0,0,1,0,1,0,2,1,0,0,0,0,3,0,1,1,0,1,0,1,2,1,0,2,0,0,0,1,0,0,0,0,1,0,1,1,2,0,0,1,0,2,0,1,1,1,0,1,1,1,3,0,1,0,1,0,1,1,0,0,2,2,3,0,1,0,1,1,0,0,1,1,0,0,0,0,1,0,0,2,1,0,1,1,0,0,1,0,0,2,3,0,0,1,0,2,1,1,1,0,0,0,1,2,2,0,0,1,0,0,1,0,0,0,2,0,1,0,0,0,1,2,1,2,0,0,2,3,0,0,0,1,0,1,2,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,2,0,3,0,1,1,0,0,2,1,0,0,1,1,0,2,0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,1,1,0,1,0,2,2,3,1,0,0,1,0,2,2,0,1,0,1,1,1,0,0,0,0,1,2,0,0,1,2,2,0,0,0,0,1,1,1,0,0,0,0,0,1,2,0,0,1,1,0,3,1,0,0,1,3,1,0,0,1,1,0,1,0,0,0,0,2,0,0,0,1,0,0,1,0,1,0,4,0,0,0,1,0,1,2,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,2,1,1,1,0,0,1,3,2,0,0,1,1,1,0,1,0,2,0,1,1,1,0,2,3,0,3,0,0,0,2,1,0,2,0,1,0,1,0,0,0,0,1,1,1,2,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,2,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,3,2,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,2,1,0,0,0,0,1,1,1,1,0,0,1,0,2,2,1,2,1,0,1,0,1,0,1,0,3,1,2,0,0,0,0,2,0,0,0,2,3,0,1,0,0,0,0,1,1,1,0,0,3,0,0,1,0,0,1,0,2,0,0,0,2,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,1,0,2,3,0,1,1,2,3,0,1,0,0,0,2,0,0,1,0,0,0,2,2,0,0,1,2,0,0,0,0,2,0,2,1,0,0,2,1,1,0,0,1,4,1,0,0,0,0,0,0,0,3,1,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,2,1,2,0,0,2,0,0,0,0,0,0,2,1,0,0,1,1,0,1,1,1,2,0,1,0,1,0,2,1,2,1,0,0,1,1,0,0,1,0,1,1,2,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,0,3,0,0,1,1,0,1,0,1,0,0,2,0,2,0,2,3,1,2,2,1,0,2,2,0,0,3,1,0,1,2,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,2,1,1,2,0,0,1,2,1,0,0,1,0,1,2,0,0,0,0,1,1,2,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,2,1,0,1,1,2,0,1,1,1,0,0,3,1,0,0,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,2,0,0,0,0,0,1,0,0,2,1,1,0,0,2,1,0,0,0,1,0,0,1,1,1,1,3,1,0,1,0,0,0,2,1,0,0,0,1,0,0,1,0,0,0,0,0,0,2,3,0,0,2,0,1,0,3,0,0,1,2,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,2,0,0,0,2,2,0,1,1,0,1,1,3,1,0,2,0,1,0,2,2,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,2,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,1,2,0,2,0,3,2,0,1,0,1,0,2,2,1,0,0,2,0,1,1,0,0,0,1,1,0,0,0,0,2,1,1,0,2,0,1,1,0,2,0,0,2,2,2,1,0,1,0,1,0,0,0,2,0,0,1,1,3,0,1,1,2,0,0,2,1,1,1,0,1,0,2,2,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,2,3,2,0,0,1,0,0,1,0,0,0,1,0,1,2,0,0,0,1,0,0,0,0,0,0,1,1,0,1,3,2,1,1,0,0,0,0,0,1,1,2,0,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,3,2,2,1,2,0,2,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,2,1,1,1,0,0,3,0,0,2,1,1,2,1,2,1,0,0,2,2,1,0,1,1,1,2,1,1,0,0,0,0,1,2,0,0,0,0,0,0,1,0,1,0,1,1,2,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,2,1,0,2,0,0,0,1,0,0,1,3,1,0,2,0,2,0,0,0,1,0,0,0,0,0,0,1,2,1,0,1,0,2,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,0,1,2,0,0,0,1,0,1,0,1,1,0,2,4,2,1,0,0,0,1,0,1,0,1,1,1,0,0,1,1,1,1,0,2,0,0,0,1,3,0,0,0,0,2,0,1,2,0,0,0,0,0,1,1,1,2,1,1,2,1,0,3,0,0,1,0,0,2,1,0,1,0,2,1,0,0,1,1,1,1,0,2,2,1,0,2,1,2,0,2,0,0,1,1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,2,1,0,1,0,3,0,1,0,0,1,2,0,0,1,1,2,1,1,1,1,0,1,2,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,2,0,0,0,3,2,1,3,0,0,0,1,1,0,0,0,1,1,1,2,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,2,2,1,1,0,0,0,0,1,1,1,0,3,0,1,0,1,0,2,0,0,1,0,1,0,1,1,0,0,0,1,3,2,0,0,0,1,2,0,0,0,0,2,2,2,0,0,2,0,1,1,0,0,2,2,0,1,1,0,2,1,1,0,0,1,0,0,0,1,0,0,1,2,1,2,0,0,0,1,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,1,1,2,1,2,0,0,2,0,2,1,1,0,0,0,0,0,0,0,1,0,3,1,1,0,1,0,1,1,0,0,1,0,1,0,1,3,1,0,0,1,0,1,0,2,2,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,2,0,0,0,1,2,2,1,1,0,1,1,0,0,1,1,0,0,0,2,1,2,1,0,1,0,0,0,1,2,1,0,3,1,1,0,1,1,0,1,2,1,1,2,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,1,1,1,2,1,0,0,0,0,0,0,1,0,2,0,1,1,0,0,0,0,0,0,0,1,1,2,0,0,0,0,1,3,2,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,0,1,2,0,0,0,2,1,1,1,1,2,1,1,0,0,0,2,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,0,0,3,1,2,1,1,0,2,1,0,1,0,2,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,3,0,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,3,0,0,1,2,0,0,0,1,0,3,2,0,0,0,2,0,0,0,0,0,1,3,0,3,1,0,2,0,1,1,0,1,3,0,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,2,0,2,1,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,0,2,0,1,1,0,2,0,0,3,1,1,1,3,2,0,0,0,1,3,2,0,1,0,3,0,0,0,0,1,2,0,0,0,0,1,2,0,0,1,2,2,0,2,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,1,3,0,1,1,0,2,1,0,2,1,1,0,1,0,1,0,1,1,2,0,2,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,2,0,0,2,0,1,3,0,0,1,1,2,1,0,2,1,1,1,1,0,1,0,3,0,0,0,1,0,0,0,1,1,0,2,0,0,0,1,0,0,1,1,0,1,1,0,1,2,0,1,1,0,0,3,0,1,0,1,0,2,2,2,0,1,0,0,0,0,0,0,0,0,0,1,1,0,2,2,1,1,1,0,0,0,1,0,0,2,0,2,1,2,0,0,2,0,0,1,0,1,1,0,1,0,0,0,0,2,1,1,0,0,0,0,0,0,0,0,1,1,2,0,1,0,2,1,1,2,0,1,2,1,0,0,0,1,0,1,0,0,0,0,0,1,0,2,1,0,1,1,0,1,0,0,0,1,3,0,0,0,0,0,1,2,0,0,1,1,1,1,0,0,0,1,1,0,0,1,3,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0,1,2,1,2,2,0,0,0,2,1,0,0,1,0,1,0,1,0,0,1,2,0,2,0,0,0,1,1,0,0,0,1,1,0,0,2,0,0,1,1,1,0,0,1,2,1,1,1,1,1,0,0,1,0,0,0,0,0,0,1,0,3,1,1,3,1,0,1,1,0,1,0,1,1,3,0,1,0,0,1,1,1,0,0,1,2,1,2,1,1,0,0,1,2,2,0,0,0,1,1,2,1,0,1,1,1,2,1,0,0,0,1,0,0,1,2,0,0,2,0,0,0,2,0,1,0,0,0,0,1,0,0,0,0,1,0,2,0,0,0,1,0,3,1,0,1,0,2,0,1,2,0,0,0,0,2,1,1,1,2,0,0,0,0,2,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,0,0,0,3,2,0,0,0,1,0,2,0,1,1,1,1,0,0,0,1,0,0,1,2,0,2,2,0,1,1,0,1,0,1,1,1,0,0,2,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,1,0};
int main()
{
#ifdef LOCAL
freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
#endif // LOCAL
int n;
while (~scanf("%d", &n) && n)
{
printf("%d\n", a[n]);
}
return 0;
}