#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
string Two[997];
string Res[1000];
void Add(int pos)
{

    string large=Two[pos-3],small=Res[pos-2];
    int max=large.length();
    int min=small.length();
       string s,res;
       int sum,carry=0;
       for(int i=max-1;i>=(max-min);i--)
       {
           sum=carry+large[i]-'0'+small[i-(max-min)]-'0';
           s[i]=sum%10+'0';
           carry=sum/10;
       }
       for(int i=max-min-1;i>=0;i--)
       {
           sum=carry+large[i]-'0';
           s[i]=sum%10+'0';
           carry=sum/10;
       }
       if(carry==1)
       res="1";
       for(int i=0;i<max;i++)
       res+=s[i];
       Res[pos]=res;
       return;
}
void Multiply(int pos)
{
    string a=Two[pos-1];
    int m=a.length();
    string s,res;int c=0;
    int sum,carry=0;
    for(int i=m-1;i>=0;i--)
    {
        sum=(a[i]-'0')*2+carry;
        s[c]=sum%10+'0';
        carry=sum/10;
        c++;
    }
    while(carry!=0)
    {
        s[c]=carry%10+'0';
        carry/=10;
        c++;
    }
    for(int i=c-1;i>=0;i--)
    {
        res+=s[i];
    }
    Two[pos]=res;
    return;
}
int main()
{
     Two[0]="1";
     Two[1]="2";
     for(int i=2;i<997;i++)
     Multiply(i);
     Res[1]="0";
     Res[2]="1";
     for(int i=3;i<1000;i++)
     Add(i);
     int num;
     while(scanf("%d",&num))
     {
         cout<<Res[num]<<endl;
     }
}