semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int f(int a[40])                             //??????????2? 
{   int i;
    int b[40]={0};
    for(i=1;i<=39;i++)
       {  b[i]=2*a[i];
          a[i]=b[i]%10+b[i-1];
          b[i]=b[i]/10;
       }
    return 0;
}
int main()
{   int a[40]={0};
    a[1]=1;
    int n;
    cin>>n;                        //?? 
    int i;
    for(i=1;i<=n;i++)                //??N?2? 
       {  f(a);
       }
    int t=0;
    for(i=39;i>=1;i--)                //?? 
       {   if(t==1)
              {  cout<<a[i];
                 continue;
              }
           if(a[i]!=0)  
              {   t=1;
                  cout<<a[i];
              }
       }
    return 0;
}
char number[110]={0};
void fraction()
{
	int yushu=0;
	for ( int i=100;i>=0;i--)
	{
		if(number[i]!='0')
		number[i]=number[i]*2-'0'+yushu;
		else
		{
			number[i]=number[i]+yushu;
			yushu=0;
		}
		if(number[i]>'9')
		{
			number[i]=number[i]-10;
			yushu=1;
		}
		else
			yushu=0;
	}
}
int main()
{
	int n;
	cin>>n;
	for ( int i=0;i<100;i++)
		number[i]='0';
	number[100]='1';
	for ( int i=0;i<n;i++)
	{
		fraction();
	}
	int start=0;
	for( int i=0;i<=100;i++)
		if(number[i]!='0') 
		{
			start=i;
			break;
		}
	for ( int i=start;i<=100;i++)
	cout<<number[i];
    
	return 0;

}
int num[101]={2};
int mul();
int main()
{
	int i;
	int n;
	int a;
	cin>>n;
	if (n==0)
		cout<<'1'<<endl;
	else
	{
	for (i=0;i<n-1;i++)
		mul();
	for (i=100;i>=0;i--)
		if (num[i]!=0)
		{
			a=i;
			break;
		}
	for (i=a;i>=0;i--)
		cout<<num[i];
	cout<<endl;
	}
return 0;
}
int mul()
{
	int i;
	int temp[101]={0};
	for (i=0;i<101;i++)
		temp[i]=2*num[i];
	for (i=0;i<101;i++)
	{
		if (temp[i]>9)
		{
			temp[i+1]+=temp[i]/10;
			num[i]=temp[i]%10;
		}
		else
			num[i]=temp[i];
	}
	return 0;
}
int main()
{
	int a[100]={0},n=0;
	a[99]=1;
	int i=0,j=0,k=0;
	cin>>n;
	for(j=0;j<n;j++)
	    for(i=99;i>=0;i--)
		{
			a[i]=a[i]*2+k,k=0;
			if(a[i]>9) k=a[i]/10,a[i]=a[i]%10;
		}
	int flag=0;
	for(i=0;i<100;i++)
	{
		if(a[i]!=0) flag=1;
		if(flag!=0) cout<<a[i];
	}
	return 0;
}
int main()
{
	int n;
	int an[100]={4,2,8,1,4,7,3,7,0,1,-1};
	int carry=0;
	int dig;
	cin>>n;
	if(n<=30)
		cout<<(int)pow((double)2,(double)n)<<endl;
	else
	{
		n=n-30;
		for(int i=0;i<n;i++)
		{
			carry=0;
			for(dig=0;an[dig]+1;dig++)
			{
				an[dig]=an[dig]*2+carry;
				carry=an[dig]/10;
				an[dig]=an[dig]%10;
			}
			if(carry)
			{
				an[dig]=carry;
				an[dig+1]=-1;
			}
		}
		int st;
		for(st=100;an[st]!=-1;st--){}
		for(int i=st-1;i>=0;i--)
			cout<<an[i];
		cout<<endl;
	}
	return 0;
}
int a[40] = {2}, b[40] = {2};
int n;
void sum(int c1, int c2)
{
     if(c1 == n)
     { 
     for(int i = c2 - 1; i >= 0; i--)
             cout<<a[i];
     cout<<endl;
     }
     else
     {
         if(a[c2 - 1] + b[c2 - 1] >= 10)                 //???? 
            c2++;
         for(int i = 0; i < c2; i++)                     //??n????? ?? 
         {
                         a[i] = (a[i] + b[i]) % 10;
                         a[i + 1] = (b[i] + b[i]) / 10 + a[i + 1];
                         b[i] = a[i];
         }
         sum(c1 + 1, c2);
     }
}
int main()
{
    cin>>n;
    if(n == 0)
    {
         cout<<1<<endl;
         return 0;
    } 
    for(int i = 1; i < 40; i++)
            a[i] = 0, b[i] = 0; 
    sum(1, 1);
    return 0;
}
int main(){
    int n,i,c=0,j;
    int B[300]={0};
    B[1]=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
       for(j=1;j<300;j++){
       	   B[j]=B[j]*2+c;
       	   c=0;
           if(B[j]>=10){
           	 B[j]-=10;
           	 c=1;
           }
	   }
    }
    for(i=288;i>0;i--){
    	if(B[i]!=0){
	      break;
	    }
    }
    for(j=i;j>0;j--){
    	printf("%d",B[j]);
    }
	return 0;
}
int main(int argc, char* argv[])
{
	int n;
	scanf("%d",&n);
	double sum=1;
	for(int i=1;i<=n;i++)
	{
	sum=sum*2;
	}

	printf("%.lf",sum);

	return 0;
}
int main(){
    int n;
    int result[32]={0};
    int carry=0;
    int i,j,key=0;
    scanf("%d",&n);
    if(n==0){
       printf("1"); 
    }else{
       result[0]=1;
       for(i=1;i<=n;i++){
           for(j=0;j<32;j++){
               result[j]=result[j]*2+carry;
               carry=0;
               if(result[j]>=10){
               result[j]=result[j]-10;
               carry=1;
               }
           }
       }
       for(i=31;i>=0;i--){
               if(result[i]!=0){
               printf("%d",result[i]);
               i--;
               break;
               }
       }
       for(;i>=0;i--){              
               printf("%d",result[i]);
       }
    }
	
	return 0;
}
int main()
{
    int N;
    cin>>N;
    int a[40],b[40];
    a[0]=1,b[0]=1;
    for (int i=1;i<40;i++)
    a[i]=0,b[i]=0;
    for (int i=0;i<N;i++)
    {
       for (int k=0;k<39;k++)
       {
           a[k]=a[k]*2;
        }
        for (int k=0;k<39;k++)
        b[k]=a[k];
        for (int k=0;k<39;k++)
        
           if (b[k]>=10)
            {
            b[k+1]++;
            b[k]=b[k]-10;
            }
             for (int k=0;k<39;k++)
             a[k]=b[k]; 
    }
    int m;
    for (int i=39;i>=0;i--)
      if (b[i]!=0)
      {
          m=i;
          break;
      }
    for (int i=m;i>=0;i--)
    cout<<b[i];
    return 0;
}
int main()
{
	int N,i,j;
	int b[100]={1,0},jin[100]={0},liu[100]={0};
	cin>>N;
	if(N==0)
		cout<<'1'<<endl;//0???1
	else{
		for(i=0;i<N;i++)//??? N ?2
		{
			for(j=0;j<100;j++)
				b[j]=b[j]*2;
			for(j=0;j<100;j++)
				if(b[j]>=10)
				{
					b[j+1]=b[j+1]+b[j]/10;
					b[j]=b[j]%10;
				}
		}
		for(i=99;i>=0;i--)
			if(b[i]!=0)break;
		for(j=i;j>=0;j--)//??
			cout<<b[j];
	}
	return 0;
}
void increase (char []);
int main()
{
	int N, sum = 0, i, j;
	char num[100];
	memset (num, '\0',100);
	num[0] = '1';
	cin >> N;
	for (i = 0; i < N; i++)
		increase (num);
	i = 0;
	while (num[i] != '\0') ++i;
	for (j = i - 1; j >= 0; j--)
	{
		cout << num[j];
	}
	return 0;
}
int mid = 0;
void increase (char num[100])
{
	int n = 0;
	while (num[n] != '\0' || mid != 0)
	{
		if (num[n] != '\0')
		mid += (num[n] - '0') * 2;
		if (mid < 10)
		{
			num[n] = mid + '0';
			mid = 0;
		}
		else 
		{
			num[n] = mid % 10 + '0';
			mid = 1;
		}
		++n;
	}
}
/**
* @file 1000012800_2.cpp
* @author ??
* @date 2010-12-15
* @description
* ??????:??2?N?? 
*/
int main()
{
	int n, num[100] = {0}, count = 0;
	num[0] = 1;

	cin >> n;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= count; j++)
			num[j] *= 2;
		for (int j = 0; j <= count; j++)
		{
			if ((num[j] / 10))
			{
				num[j + 1] += num[j] / 10;
				num[j] = num[j] %10;
			}
		}
		if (num[count + 1])
			count++;
		
	}
	for (int i = count; i >= 0; i--)
		cout << num[i];
	cout << endl;
	return 0;
}
int a[1000];
void calc()
{
	int j=0;
	for(j=0;j<1000;j++)
		a[j]=a[j]*2;
	for(j=0;j<1000;j++)
	{
		if(a[j]>=10)
		{
			a[j+1]=a[j+1]+a[j]/10;
			a[j]=a[j]%10;
		}
	}
}
int main()
{
	memset(a,0,sizeof(a));
	int n=0,k=0;
	cin>>n;
	int i=0,sum=1;
	for(i=0;i<30;i++)
		sum=sum*2;

	while(sum!=0)
	{
		a[k]=sum%10;
		sum=(sum-a[k])/10;
		k++;		
	}



		sum=1;
	if(n<=30)
	{
		for(i=0;i<n;i++)
			sum=sum*2;
		cout<<sum<<endl;
	}
	else
	{
		for(i=30;i<n;i++)
			calc();
		int p=0;
		for(i=1000;i>=0;i--)
		{
			if(a[i]!=0)
			{
				p=i;
				break;
			}
		}
		for(i=p;i>=0;i--)
			cout<<a[i];
		cout<<endl;
	}
	return 0;
}
int main()
{
	int n,i,j,num[2000];
	memset(num,0,sizeof(num));
	num[1999]=2;
	cin>>n;
	if(n==0)
	{
		cout <<"1" << endl;return 0;
	}
	else
	{
		for(i=1;i<n;i++)
		{	
			for(j=0;j<2000;j++)
			{
				num[j]=2*num[j];
				if(num[j]>=10)
				{
					num[j]=num[j]-10;
					num[j-1]++;
				}
			}
		}
	}
	i=0;
	while(num[i]==0)
	{
		i++;
	}
	for(;i<2000;i++)
		cout <<num[i];
	cout << endl;
	return 0;
}
int main()
{
	char a[100];
	int n, l;
	int i;
	int k;
	int jin;
	for (i = 0; i < 100; i++)
		a[i] = '0';
	a[0] = '1';
	cin >> n;
	if (n == 0)
		cout << 1;
	else
	{
		for (i = 0; i < n; i++)
		{
		    jin = 0;
			for (int j = 0; j < 99; j++)
			{
				k = a[j] - '0';
				k = k * 2 + jin;
				jin = k / 10;
				k = k % 10;
				a[j] = '0' + k;
			}
		}
	    l = 99;
		while (a[l] == '0')
		{
			l--;
		}
		for (i = l; i > -1; i--)
			cout << a[i];
	}
	return 0;
}
/**********************************
?? ???1300017667
?? 20131114
?? 2?n?????????
**********************************/
int main()
{
	int n, i, j, flag = 0;				//flag???????????
	cin >> n;
	short int num[35] = {1, 0};			//100 * log2 < 35
	for(i = 1; i <= n; i ++)			//n????????2?n??
	{
		for(j = 0; j <= 34; j ++)		
		{
			num[j] = num[j] * 2 + flag;	//???????????????????????
			if(num[j] >= 10)			//?????????????????????????????1
			{
				num[j] = num[j] - 10;
				flag = 1;
			}
			else
				flag = 0;				//???????????????0
		}
	}
	for(j = 34; num[j] == 0; j --);		//?????????????????????????
	for(; j >= 0; j --)					//????????????????????????????
		cout << num[j];
	return 0;
}
/**
????5.cpp
?  ?????
?  ??11.16
?  ????2?N??
*/
int main()
{

	int N, i, j ,flag = 0;
	int ans[32] = {0};  // ???2^100?31???????????32
	ans[31] = 1;


	cin >> N;

	if(N == 0)
		cout << "1" << endl;
	else
	{
		for(i = 0 ; i < N ; i++)
		{
			for(j = 31 ; j >= 0 ; j--)
			{
				ans[j] = 2 * ans[j] + flag;
				if(ans[j] >= 10)
				{
					ans[j] -= 10;
					flag = 1;
				}
				else
					flag = 0;
			}
		}
		i = 0;
		while(ans[i] == 0)
			i++;
		for(; i < 32 ; i++)
			cout << ans[i];
		cout << endl;
	}
	return 0;
}
int main()
{
	int N, x[31] = {0}, i, r;
	x[0] = 1;
	cin >> N;
	while (N > 0)
	{
		r = 0;
		for (i = 0; i <= 30; i++)
		{
			int t = r;
			r = (x[i] * 2 + r) / 10;
			x[i] = (x[i] * 2 + t) % 10;
		}
		N--;
	}
	i = 30;
	while (x[i] == 0)
		i--;
	for (;i >= 0;i--)
		cout << x[i];
	cout << endl;
	return 0;
}
int main()
{
	int n,ans=2,i,k=0,p;
	char num[1000];
	int m[1000]={0},result[1000]={0};
	
	cin>>n;
	if(n==0)
		cout<<"1"<<endl;
	else if(n<31)
	{
		for(i=1;i<n;i++)
		{
			ans=ans*2;
		}
		cout<<ans<<endl;
	}
	else
	{
		for(i=1;i<30;i++)
		{
			ans=ans*2;
		}
		for(int y=0;y<1000;y++)
		{
			num[k++]=ans%10;
			ans=ans/10;
		}
		for(int l=30;l<n;l++)
		{
			for(i=0;i<1000;i++)
			{
				result[i]=0;
			}
		
			for(i=0;i<1000;i++)
			{
				result[i]=result[i]+num[i]*2;
				if(result[i]>=10)
				{
					result[i]=result[i]%10;
					result[i+1]+=1;
				}
			}
			for(i=0;i<1000;i++)
			{
				num[i]=result[i];
			}
		
		}
		for(i=999;i>=0;i--)
		{
			if(result[i]!=0)
			{p=i;break;}
		}
		for(i=p;i>=0;i--)
		{
			cout<<result[i];
		}
	}

	return 0;
}
int main()
{
	int n,i,N;
	double total;
	total=1.0;
    scanf("%d",&N);
    if(N==0){
             total=1;}
    if(N!=0){
    for(i=0;i<N;i++){
                     total*=2;
                     }
    }
    printf("%.0lf",total);                
	scanf("%d",&n);
	return 0;
}
//********************************
//*?????(11-12) ??2?N??   **
//*?????? 1300012745 **
//*???2013.11.19  **
//********************************
int main()
{
	int num[100] = {0}, N, i, j, wei = 1;
	cin >> N;
	if (N == 0)
		cout << 1;
	if (N == 1)
		cout <<2;
	if (N > 1)
	{
		num[0] = 2;
		for (i = 2; i <= N; i++)
		{
			for (j = 0; j <= 99; j++)
			{
				num[j]*=2;
			}
			for (j = 0; j <= 99; j++)
			{
				if (num[j] >= 10)
				{
					num[j]-=10;
					num[j + 1]++;
				}
			}
		}
		j = 99;
		while (num[j] == 0)
			j--;
		for (i = j; i >= 0; i--)
			cout <<num[i];
	}
	return 0;
}
int main()
{
	int i, j, num, flag;
	int a[101];
	cin >> num;
	memset(a, 0, sizeof(a));
    a[100] = 1;
    while( num > 0 )
	{
		flag = 0;
		for( i = 100; i >= 1; i-- )
		{
			a[i] = a[i] * 2 + flag;
			if( a[i] >= 10 )
			{	
				a[i] -= 10;
				flag = 1;
			}
			else
				flag = 0;
		}
		num--;
	}
	i = 1;
	while( a[i] == 0 )
	{
		i++;
	}
	for( j = i; j <= 100; j++ )
	{
		cout << a[j];
	}
	cout << endl;
	return 0;
}
int num[10000000] = {0}, flag[10000000], len = 1;

void minusn()
{
	int i;
	flag[0] = 0;
	for(i = 0; i < len; i++)
	{
		num[i] *= 2;
		num[i] += flag[i];
		flag[i+1] = 0;
		if(num[i] >= 10)
		{
			flag[i+1] = 1;
			num[i] = num [i] % 10;
		}

	}
	if(flag[i] == 1)
	{
		len++;
		num[i] += flag[i];
	}

	return;
}

int main()
{
	int n, i, j, temp;
	num[0] = 1;
	cin >> n;
	for(i = 1; i <= n; i++)
		minusn();
	for(j = 0, i = len - 1; j < len / 2; j++, i--)
	{
		temp = num[i];
		num[i] = num[j];
		num[j] = temp;
	}
	for(i = 0; i < len; i++)
		cout << num[i];
	cout <<endl;

	return 0;
}
int main()
{
	int s[50]={0},t=0;s[0]=2;
	int n;
	cin>>n;
	int i=0,j=0;
	if(n==0)
		cout<<"1";
	else{
		for(i=0;i<n-1;i++)
		{
			t=0;
			for(j=0;j<50;j++)
			{
				s[j]=s[j]*2;
				s[j]=s[j]+t;
				if(s[j]>9)
				{s[j]=s[j]-10;t=1;}
				else t=0;
			}

		}
		for(j=49;j>=0;j--)
			if(s[j]>0)
				break;
		for(i=j;i>=0;i--)
			cout<<s[i];}
	
	return 0;
}
//********************************
//*??2?N??                 **
//*????? 1300012848        **
//*???2013.11.16             **
//********************************
int main()
{
	const int MAX_LEN = 200;
	int n, i, j, k = MAX_LEN;
	int a[MAX_LEN + 1];
	memset(a,0,sizeof(a)); //????
	cin >> n;
	if (n == 0)
		cout << "1" << endl; //2?0???1
	else
	{
		a[0] = 1;
		for (i = 1; i <= n; i++) //????n?
		{	
			for (j = 0; j < MAX_LEN; j++) //??????????
				a[j] = a[j] * 2;
			for (j = 0; j < MAX_LEN; j++) //???????????????
				if(a[j] >= 10)
				{
					a[j] = a[j] % 10; //???10??
					a[j+1]++; //?????
				}
		}
	while (a[k] == 0)
		k--;
	for(; k >= 0; k--)
	cout << a[k]; //????? ????????0?? ????
	}
	return 0;
}
int main()
{
    const int max = 200;
    int result[max+1];
    memset(result, 0, sizeof(result));
    int n, i, j;
    cin >> n;
    int size=1;
    result[0]= 1;
    int c = 0;
    for (i=0;i<n;i++)
    {
        for (j=0;j < size;j++)
        {
             result[j] = result[j] * 2 + c ;//?????????????? 
             if (result[j] >= 10)
             {
                 result[j] -= 10;
                 c = 1;
                 if (j == size-1)
                 {
                     size++;
                 }
             }
             else
             {
                 c=0;
             }
        }
    }  
    i=max;
    while (result[i] == 0)
    {
          i--;
    }
    for (;i>=0;i--)
    {
        cout << result[i] ;
    }
    cout << endl;
    return 0;
}
int main()
{
    int n;
	cin>>n;
	cout<<endl;
	int num[1001];
	for (int i=0;i<1001;i++)
		num[i]=0;
	num[0]=1;//???????1
	for (int i=0;i<n;i++)
	{//??n??????
	   for (int j=0;j<1000;j++)
	   {//?????????
	      num[j]=num[j]+num[j];
	   }
	   for (int j=0;j<1000;j++)
	   {//??????????10??????
	      if (num[j]>=10)
		  {
		     num[j+1]=num[j+1]+1;
			 num[j]=num[j]-10;
		  }
	   }
	}
	int k=1000;
	while (num[k]==0) k--;//???????0???
	for (int i=k;i>=0;i--)//??????
		cout<<num[i];
	cout<<endl;
	return 0;
}
/********************************************
 *@file   5.cpp                             *
 *@author ??                              *
 *@date   2013-11-20                        *
 *@description                              *
 *??????8???2?N??               *
 ********************************************
 */
int main()
{
	int n, a[50] = {0}, l, j; // 2?100??????32??l???
	a[1] = l = 1;
	for (cin >> n; n; n--) // ?????n=0?????false??
	{
		for (j = 1; j <= l; j++)
			a[j] = a[j] * 2; // ?????2????????????????
		for (j = 1; j <= l; j++)
		{
			a[j+1] += a[j] / 10;
			if (a[l+1])
				l++;
			a[j] %= 10;
		}
	}
	for ( ; l; l--)
		cout<<a[l];
	return 0;
}

//??????????????
/*???
a1=2?a2=0?l=1		2
a1=4?a2=0?l=1		4
a1=8?a2=0?l=1		8
a1=16?a2=1?l=2?a1=6		16
a1=12?a2=2?a2=3?l=2?a1=2	32
a1=4, a2=6?l=2		64
a1=8?a2=12?a3=1?l=3?a2=2		128
a1=16?a2=4?a3=2?a2=5?l=3?a1=6		256
??????
*/
int main(void)
{
	int num[1000]; // ????
	int n; // ??2?n??
	memset(num, 0, sizeof(num));
	num[0] = 1;
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		for(int j = 0; j < 1000; j++)
		{
			num[j] *= 2; // ????2
		}
		for(int j = 0; j < 1000; j++) // ??
		{
			if(num[j] >= 10) 
			{
				num[j] -= 10;
				num[j + 1]++; // ?????
			}
		}
	}
	int x;
	for(x = 999; num[x] == 0; x--); // ??????
	for(; x >= 0; x--) // ????
	{
		cout << num[x];
	}
	cout << endl;
	return 0;
}
int main()
{
    int m,n,i;
    double s=1;
    scanf("%d",&n);
    if(n==0){printf("1");}
    else
    {
        for(i=1;i<=n;i++)
        {
          s*=2;
        }
        printf("%.0f",s);
    }
    
    return 0;
}
int main()
{
    int n,i,num[150]={0},len,k,m,j;
    char str[150]={'\0'};
    cin>>m;
    str[0]='1';
    for(j=1;j<=m;j++)
{
    len=strlen(str);
    k=0;
    for(i=len-1;i>=0;i--)
    {
        n=str[i]-'0';
        num[k]=n*2;
        k++;
    }  
    for(i=0;i<120;i++)
    {    
         // cout<<num[i]<<' '<<num[i+1]<<' ';
        num[i+1]=num[i+1]+num[i]/10;
        num[i]=num[i]%10;
       // cout<<num[i]<<' '<<num[i+1]<<endl;
    }
    
    
       
    i=140;
    while(num[i]==0)   i--;
    k=0;
    for(;i>=0;i--)
    {
        str[k]=num[i]+'0';
        k++;
    }
    
}
    i=140;
    while(num[i]==0)   i--;
    for(;i>=0;i--)
       cout<<num[i];             
    if(m==0)   cout<<1;
    
    
        return 0;
}
int main()
{
	int N, i, j;
	int k;
	cin >> N;
	int a[400] = {0};
	a[399] = 1;
	for( i = 0; i < N; i++ )
	{
		for( j = 0; j < 400; j++ )
		{
			a[j] = a[j] * 2;
		}
		for( k = 399; k >= 0; k-- )
		{
			if( a[k] >= 10 )
			{
				a[k] = a[k] - 10;
				a[k-1] += 1;
			}
		}
	}
	for( i = 0; i < 400; i++ )
	{
		if( a[i] != 0 )
		  break;
	}
	for( j = i; j < 400; j++ )
	{
		cout << a[j];
	}
	cout << endl;
	return 0;
}
int num[105]={0};
void times()
{
    int i,j,temp[105]={0};
    for(i=104;i>=0;i--)
    if(num[i]!=0) break;
    for(j=0;j<=i;j++)
    {
        temp[j]=num[i-j];
        temp[j]=temp[j]*2;
    }
    for(j=0;j<=i;j++)
    {
        temp[j+1]+=temp[j]/10;
         temp[j]=temp[j]%10;
    }
    if(temp[i+1]==0)
    {
        for(j=0;j<=i;j++)
        num[j]=temp[i-j];
    }
    else for(j=0;j<=i+1;j++)
         num[j]=temp[i+1-j];
}
int main()
{
    int i,n,stop;
    cin>>n;
    num[0]=1;
    for(i=0;i<n;i++)
    times();
    for(stop=104;num[stop]==0;stop--);
    for(i=0;i<=stop;i++)
    cout<<num[i];
    return 0;
}
int main ()
{
	int n=0,k=0;
	int ans[100]={1};
	cin>>n;
		for (int i=1;i<=n;i++){
			int flag=0;//???
			for (int j=0;j<k;j++){//k??????????
				if (ans[j]*2+flag<10) {//????????
					ans[j]=ans[j]*2+flag;
					flag=0;
				}
				else {//???
					ans[j]=ans[j]*2+flag-10;
					flag=1;
				}
			}
			//???????
			if (ans[k]*2+flag<10) 
					ans[k]=ans[k]*2+flag;
			else {
				ans[k]=ans[k]*2+flag-10;
				k+=1;
				ans[k]=1;
			}

		}
	
	for (int i=k;i>=0;i--)//????
		cout<<ans[i];

	return 0;
}
/**
 *file:1000012776_4.cpp
 *author:???
 *date?2010-12-18
 *discription?????12-15????2?n???
 */

void ride2( char * ) ;//???????2?
void antitone( char * ) ;//?????????

void ride2( char * p )
{
	int i , temp = 0 , num ;
	for ( i = 0 ; ; i++ )
	{
		if ( *( p + i ) == '\0' )
		{
			if ( temp != 0 )
				*( p + i ) = temp + '0' ;
			break ;
		}
		num = ( *( p + i ) - '0' ) * 2 + temp ;
		* ( p + i ) = num % 10 + '0' ;
		temp = num / 10 ;
	}
}

void antitone( char * p )
{
	int i = 0 , j = 0 ; 
	char q[100] ;
	while ( *( p + (i++) )!= '\0' ) ;
	i-- ;
	while ( i >= 0 )
	{
		i-- ;
		*( q + j ) = *( p + i ) ;
		j++ ;
	}
	i = 0 ;
	while ( *( p + i ) != '\0' )
	{
		*( p + i ) = *( q + i ) ;
		i++ ;
	}
}

int main ()
{
	char num[100] = "1" ;
	int i , power ;
	cin >> power ;
	for ( i = 0 ; i < power ; i++ )
	{
		ride2( num ) ;
	}
	antitone( num ) ;
	cout << num << endl ;
	return 0 ;
}
int main()
{
	int a[40],b[40],c[40];
	int n;
	a[0]=1;
	b[-1]=0;
	c[0]=1;
	for(int k=1;k<40;k++)
		a[k]=0,c[k]=0;
	cin>>n;
	for(int j=0;j<n;j++)
	{
		for(int i=0;i<39;i++)
		{
			if(a[i]>=5)
			   b[i]=1;
			else
				b[i]=0;
			a[i]=(2*a[i])%10+b[i-1];
			if(a[i]!=0)
				c[i]=1;
		}
	}
	for(int l=39;l>=0;l-=1)
	{
		if(c[l]==1)
			cout<<a[l];
	}
}
int main()
{   
	int a1[102],i,a3[102];
	memset(a1,0,sizeof(a1));
	memset(a3,0,sizeof(a3));
    a1[0]=1;
	int n;
	cin >> n;
    
	while(n-->0)
	{
		for(i=0;i<101;i++)
		{
			a3[i]+=a1[i]*2;
			if(a3[i]>=10)
			{
				a3[i+1]++;
				a3[i]=a3[i]%10;
			}
		}
		for(i=0;i<101;i++)
			a1[i]=a3[i];
        memset(a3,0,sizeof(a3));
	}

	i=101;
	while(a1[i]==0)
	{
		i--;
	}

	for(;i>=0;i--)
		cout << a1[i];
	cout << endl;
	return 0;
}
void compute (int x, int time);
char num[100];
int ad[100];
int N, len = 1;
int main()
{
	int j, k;
	cin >> N;
	for (k = 0; k < 100; k++)
	{
		num[k] = '0';
		ad[k] = 0;
	}
	if (N == 0)
	{
		cout << '1';
		return 0;
	}
	num[0] = '2';
	compute(1, N);
	for (j = len - 1; j >= 0; j--)    // ????
	{
		cout << num[j];
	}
	return 0;
}

void compute (int x, int time)
{
	int i, number;
	if (time == 1)
	{
		return;   
	}
	else if (x == time)   // ?x???????x + 1
	{
		return;
	}
	x++;  // ?x??????????2^2
	for (i = 0; i < len; i++)
	{
		if (num[i] != '0')
		{
			number = num[i] - '0';   // ?num[i]??i??????
			number = number * 2;
			if (number >= 10)
			{
				num[i] = number - 10 + '0';
				ad[i + 1] = ad[i + 1] + 1;
			}
			else
			{
				num[i] = number + '0';
			}
		}
	}

	for (int s = 0; s < 100; s++)
	{
		num[s] = num[s] + ad[s];
	}

	while (num[len] != '0')
	{
		len++;
	}
	for (int r = 0; r < 100; r++)
	{
		ad[r] = 0;
	}
	compute(x, N);
}
int main()
{
	int N,i,j,b;
	int a[100]={0};
	scanf("%d",&N);
	a[0]=1;
	for(i=0;i<N;i++)
	{
		for(j=0;j<100;j++)
		{
			a[j]*=2;
		}
		for(j=0;j<100;j++)
		{
			if(a[j]>9)
			{
				a[j+1]++;
				a[j]%=10;
			}
		}
	}
	for(j=99;j>=0;j--)
	{
		if(a[j]!=0)
		{
			b=j;
			break;
		}
	}
	for(j=b;j>=0;j--)
	{
		printf("%d",a[j]);
	}
	return 0;
}
int main()
{
	int i, n, num[1005], flag = 0, p = 1, j, t;
	cin >> n;
	for(i = 0; i<= 1004; i++)
		num[i] = 10;
	if(n == 0)
		cout << "1" << endl;
	else
	{
		num[1000] = 1;
		for(i = 1; i <= n; i++)
		{
			t = p;
			for(j = 1000; j >= 1000 - p + 1; j--)
			{
				num[j] = num[j] * 2 + flag;
				flag = 0;
				if(num[j] >= 10)
				{
					num[j] = num[j] - 10;
					flag = 1;
					if(num[j - 1] == 10)
					{
						num[j - 1] = 1;
						flag = 0;
						t++;
					}
				}
			}
			p = t;
		}
		if(num[1000 - p + 1] == 0)
			num[1000 - p + 1] = 1;
		for(i = 1000 - p + 1; i <= 1000; i++)
			cout << num[i];
	}
	cin >>n;
	return 0;
}
/*************************
??cpp5
??(11-12) ??2?N??
???
2013/11/14
**************************/
int main()
{
	int i, j, m, k,N, a[100]={0}, flag=0;
	cin >> N;
	a[0]=1;
	for(i=1; i<= N; i++)
	{
		for (j=0; j<=99; j++)
		{
			if (2 * a[j] +flag < 10 )
			{
				a[j] = 2 * a[j] +flag;
				flag = 0;
			}
			else 
			{
				a[j] = ( 2 * a[j] +flag ) % 10;
				flag = 1;
			}
		}

	}
	for (i=99 ; a[i]==0; i--)
		m=i;
	for (k=m-1; k>=0; k--)
		cout << a[k];
	return 0;
}
int a[100]={1};
void multiplus(int a[])
{
     int b[100]={0};
     for(int i=0;i<100;i++)
     {
            if(a[i]*2+b[i]>=10) b[i+1]=1; 
            a[i]=(a[i]*2+b[i])%10;
     }
}
int main()
{
    int n,i,k;
    cin>>n;
    for(i=0;i<n;i++)
    {
           multiplus(a);         
    }
    for(i=99;i>=0;i--)
    {
          if(a[i]!=0) 
          {
             k=i;
             break;
          }             
    }
    for(i=k;i>=0;i--) cout<<a[i];
    return 0;
}
/*
 * final_07.cpp
 *
 *  Created on: 2011-12-31
 *      Author: 2011
 */



int sum[1000]={1};
int len=1;

void cheng(void){
	int i=0;
	for(i=0;i<len;i++)
		sum[i]=sum[i]*2;
	for(i=0;i<len-1;i++){
		if(sum[i]>=10){
			sum[i]=sum[i]-10;
			sum[i+1]++;
		}
	}
	if(sum[len-1]>=10){
		sum[i]=sum[i]-10;
		sum[i+1]++;
		len++;
	}
	return;
}

int main(){
	int n,i=0;
	cin>>n;
	for(i=0;i<n;i++)
		cheng();
	for(i=len-1;i>=0;i--)
	   cout<<sum[i];
	return 0;
}
int main()
{
	int n;cin>>n;
	int num[1001]={0};
	num[1000]=1;
	int i,j;
	while(n--)
	{
		for(i=1000;i>0;i--)
			num[i]=num[i]*2;
		for(i=1000;i>0;i--)
		{
			if(num[i]>=10)
			{
				num[i]=num[i]-10;
				num[i-1]=num[i-1]+1;
			}
		}
	}
	for(i=0;i<=1000;i++)
	{
		if(num[i]!=0)
		{
			for(j=i;j<=1000;j++)
				cout<<num[j];
			break;
		}
	}
	
	return 0;
}
int main()
{
	int a[1000]={0};
	int b[1000]={0},n,c;
	a[999]=1;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < 1000; j++)
		{
			a[j]*=2;
		}//????
		for (int j = 999; j >= 0; j--)
		{
			if (a[j]>9)
			{
				a[j-1]+=1;
				a[j]-=10;
			}//????
		}

	}
	for (int j = 0; j < 1000; j++)
	{
		if (a[j]!=0)
		{
			c=j;
			break;
		}
	}
	for (int i = c; i < 1000; i++)
	{
		cout << a[i];
	}
	return 0;
}