#include<stdio.h>
#include<string.h>
const int MAXLEN=1000;
char f[251][MAXLEN];
char temp[MAXLEN];
int k;
//Accepted 412K 0MS C++ 1042B
void Add(char *a1,char * a2){
int len1=strlen(a1)-1;
int len2=strlen(a2)-1;
int inc=0;
int len=0;
int y1,y2;
int sum;
while(len1>=0||len2>=0){
if(len1<0) y1=0;
else y1=a1[len1--]-'0';
if(len2<0) y2=0;
else y2=a2[len2--]-'0';
sum=y1+2*y2+inc;
inc=sum/10;
temp[len++]=sum%10+'0';
}
if(inc<10&&inc>0) temp[len++]=inc+'0';
while(inc>=10) {
temp[len++]=inc%10+'0';
inc=inc/10;
}
int j; //j必须在外面说明
for(j=0;j<len;j++) f[k][j]=temp[len-1-j];
//int i; for(j=len-1;j>=0;j--) f[k][i++]=temp[j];
f[k][j]='\0';
}
int main(){
strcpy(f[0],"1"); //f[0]应该等于1否则会出现错误
strcpy(f[1],"1"); //char * strcpy(char *,const char *)
strcpy(f[2],"3");
int i,n;
for(k=3;k<=250;k++){
Add(f[k-1],f[k-2]);
// f[i]=f[i-1]+f[i-2]*2;
}
while(scanf("%d",&n)!=EOF){ //必须加入!=EOF,否则会出现output time limit
printf("%s\n",f[n]);
}
return 0;
}