#include #include #include #include #define maxn 210 #define maxm 60 using namespace std; int n; struct big{ int a[maxm], len; int & operator [] (const int &num){ return a[num];} big(){len = 1;} void clear(){memset(a, 0, sizeof(a)); len = 1;} void operator += (big b) { len = max(len, b.len); for (int i = 1; i <= len; ++ i) a[i] += b[i]; for (int i = 1; i <= len; ++ i){ a[i + 1] += a[i] / 10; a[i] %= 10; } if (a[len + 1]) ++ len; } void out() { for (int i = len; i >= 1; -- i) printf("%d", a[i]); puts(""); } }c[maxn][maxn], ans; int main() { n = 200; for (int i = 0; i <= n; ++ i){ c[i][0][1] = 1; for (int j = 1; j <= i; ++ j){ c[i][j] = c[i - 1][j - 1]; c[i][j] += c[i - 1][j]; } } while (scanf("%d", &n) == 1){ if (n == 0){ puts(""); continue; } ans.clear(); for (int i = 0; n - i >= i; ++ i) ans += c[n - i][i]; ans.out(); } return 0; }