semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int c[100];
int f(int a[],int b[])
{
    int i,d[100];
    for(i=0;i<100;i++)
    {d[i]=0;}
    for(i=0;i<100;i++)
    {
                      if(a[i]+b[i]+d[i]>=10)
                      {
                       c[i]=(a[i]+b[i]+d[i])%10;
                       d[i+1]=1;
                      }
                      else
                      c[i]=a[i]+b[i]+d[i];
    }
    return 0;
}
int main()
{
    int a[100],m,i,j;
    for(i=0;i<100;i++)
    {a[i]=0;}
    a[1]=2;
    cin>>m;
    if(m==0)
    cout<<"1"<<endl;
    else
    {
    for(i=1;i<m;i++)
    {
                     f(a,a);
                     for(j=0;j<100;j++)
                     {a[j]=c[j];} 
    }
    for(i=99;i>=0;i--)
    {if(a[i]!=0) break;}
    for(j=i;j>0;j--)
    {cout<<a[j];}
    }
    return 0;
}
/**
 * @file   5.cpp
 * @author ???
 * @date   2013-11-15
 * @description
 *         ?????????(11-12) ??2?N??
 */



int main()
{
	int N, k, i, j = 0, a[100] = {1};          // i, j, k?????????
	cin >> N;

	for (k = 1; k <= N; ++k)
	{
		for (i = 0; i <= j; ++i)
			a[i] += a[i];
		for (i = 0; i <= j; ++i)
		{
			if (a[i] >= 10)
			{
				a[i] -= 10;
				++a[i + 1];
				if (a[i + 1] == 1 && i == j)
				{
					++j;
					break;
				}
			}
		}
	}

	i = 99;                                            // ??
	while (a[--i] == 0);
	for (; i >= 0; --i)
		cout << a[i];

	return 0;
}
int main()
{
	int a[35]={1};
	int i,j,n,t;
	cin>>n;
	for (i=0; i<n; i++)
	{
		t=0;  //??
		for (j=0; j<35; j++)  //?????
		{
			a[j]=a[j]+a[j]+t;
			t=a[j] / 10;
			a[j]=a[j] % 10;
		}
	}
	for (i=34; a[i]==0; i--);
	for (; i>=0; i--) cout<<a[i];
	cout<<endl;
	return 0;
}
int a[102]={0},ans[102]={0};
int j;
void mult(int a[])
{
    for(j=0;j<101;j++)
    {
        a[j]=a[j]*2;}
    for(j=0;j<101;j++){
        a[j+1]=a[j+1]+a[j]/10;
        a[j]=a[j]%10;}

}
int main()
{
    int n,i;

    cin>>n;
    a[0]=1;
    for(i=0;i<n;i++)
    {
        mult(a);
    }
   int k=100;
   while(a[k]==0) k--;
   for(i=k;i>=0;i--) cout<<a[i];
   return 0;

}
int main()
{
	int n, i, j, k;
	int sum[31] = {0};
	sum[0] = 1;
	cin >> n;
	for(i = 1; i <= n; i ++)
	{
		for(j = 30; j >= 0; j --)
		{
			if(sum[j] != 0)
				break;
		}
		for(k = 0; k <= j; k ++)
		{
			sum[k] = sum[k] * 2;
		}
		for(k = 0; k <= j; k ++)
		{
			if(sum[k] > 9)
			{
				sum[k] = sum[k] - 10;
				sum[k + 1] ++;
			}
		}
	}
	for(i = 30; i >= 0; i --)
	{
		if(sum[i] != 0)
			break;
	}
	for(j = i; j >= 0; j --)
		cout << sum[j];
	cout << endl;
	return 0;
}
/*??????????N(N<=100)???2?N?????
????
??????????N?
????
??2?N?????
????
5
????
32
??
?????
*/
int main()
{
    int n,m,a[100]={0},l=1,i,j;
    a[1]=1;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=l;j++)
        a[j]=2*a[j];
        for(j=1;j<l;j++)
        {
            if(a[j]>=10)
            {
                a[j+1]=a[j+1]+1;
                a[j]=a[j]-10;
            }
        }
        if(a[l]>=10)
        {
            a[l]=a[l]-10;
            a[l+1]=1;
            l++;
        }
    }
    for(i=l;i>=1;i--) cout<<a[i];
    return 0;
}
int main()
{
	int num[105] , N , j , i ;
	cin >> N ;
	//memset( num, 0 , 105) ;
	num[0] = 1 ;
	for ( i = 1; i <= 104 ; i++)
		num[i] = 0;
    for ( i = 1; i <= N ; i++)
	{
		for ( j = 0 ; j <= 104 ; j++)
			num[j] = num[j] * 2;
		for ( j = 0 ; j <= 104 ; j++)		
		{
			if ( num[j] >= 10 )
			{
				num[j + 1] += num[j] / 10 ;
				num[j] = num[j] % 10 ;
			}
		}
	}
	i = 104 ;
	while ( num[i] == 0)
		i-- ;
	for ( ; i >= 0; i--)
		cout << num[i] ;
	return 0 ;
}
int main()
{
	int a[100]={2},b[100]={0},n,m=0,j,count=1;
	cin>>n;
	if(n==0)
	{
		cout<<"1"<<endl;
	}
	else if(n==1)
	{
		cout<<"2"<<endl;
	}
	else
	{
		for(int i=1;i<n;i++)
		{
			m=0;
			for(j=0;j<count;j++)
			{
				b[j]=a[j]*2;
				if(m==1)
				{
					b[j]++;
				}
				if(b[j]>=10)
				{
					b[j]=b[j]-10;
					m=1;
				}
				else
				{
					m=0;
				}
			}
			if(m==1)
			{
				a[j]=1;count++;
			}
			for(int i=0;i<j;i++)
			{
				a[i]=b[i];
			}
		}
		if(a[j]!=0)
		{
			for(int i=j;i>=0;i--)
			{
				cout<<a[i];
			}
		}
		else
		{
			for(int i=j-1;i>=0;i--)
			{
				cout<<a[i];
			}
		}
	}
	return 0;
}
int main()
{
	int n,i;
	int a[1000];
	memset(a,0,sizeof(a));
	a[0]=1;
	cin >> n;
	for(i=0;i<n;i++)
	{
		int j;
		for(j=0;j<n;j++)
			a[j]=a[j]*2;
		for(j=0;j<n;j++)
			if(a[j]>9)
			{
				a[j]=a[j]%10;
				a[j+1]++;
			}
	}
		for(i=n;i>=0;i--)
			if(a[i]!=0)
				break;
		int s;
		for(s=i;s>=0;s--)
			cout << a[s];
		cout << endl;
	return 0;
}
char a[2000];
int result[2000];
int temp[2000];
void calculate()
{
	memset(result,0,sizeof(result));
	int i = 0, j = 0;
	for(i = 0; i <= 1900; i++)
	{
		result[i] = temp[i] * 2 + result[i];
		if(result[i] >= 10)
		{
			result[i+1] = result[i] / 10 + result[i+1];
			result[i] = result[i] % 10;
		}
	}
	for(i = 0; i <= 1900; i++)
	{
		temp[i] = result[i];
	}
}
int main()
{
	memset(result,0,sizeof(result));
	memset(temp,0,sizeof(temp));
	temp[0] = 1;
	int n = 0, i = 0, j = 0;
	cin >> n;
	if(n == 0)
		cout << 1 << endl;
	else
	{
		for(i = 1; i <= n; i++)
		{
			calculate();
		}
		for(i = 1900; i >= 0; i--)
		{
			if(result[i] != 0)
				break;
		}
		for(j = i; j >= 0; j--)
		{
			cout << result[j];
		}
		cout << endl;
	}
	return 0;
}
int main()
{
	int ans[100]={0},flag=0;
	ans[0]=1;
	int n,i,j;
	cin>>n;
	for(j=1;j<=n;j++)
		for(i=0;i<100;i++)
		{
			ans[i]=ans[i]*2+flag;
			if(ans[i]>=10)
			{
				flag=1;
				ans[i]=ans[i]%10;
			}
			else
				flag=0;
		}
	for(i=99;i>=0;i--)
		if(ans[i]!=0)
			break;
	for(j=i;j>=0;j--)
		cout<<ans[j];
	cout<<endl;
	return 0;
}
int main()
{
	int a[1000] = {0}, n, i, j,flag = 0;
	cin >> n;
	a[0] = 1;
	if (n == 0)
	{	cout <<"1";
	     exit(0);
	}
	for (i = 1; i <= n; i++)
	{
		for (j = 0; j < 100;j++)
		{
			a[j] = a[j] * 2;
		}
		for (j = 0; j < 100; j++)
		{
			if(a[j] > 9)
			{
				a[j + 1] += a[j] / 10;
				a[j] = a[j]%10;
			}
		}
	}
	for (i = 99; i >=0; i--)
	{
		if (flag == 0)
		{
			if (a[i] != 0)
			{
				flag = 1;
				cout << a[i];
			}
		}
		else 
			cout << a[i];
	}
	return 0;
}
/*
 * 2Npower.cpp
 * ?????2?N??
 *  Created on: 2013-1-11
 *      Author: ???
 */



void operate(int N);

int main()
{
	int N;               //?????
	cin>>N;              //?????
    operate(N);          //????operate
    return 0;
}

void operate(int N)
{
	int i,j;
	int num=0;
	int result[51];      //????
		memset(result,0,sizeof(result));//???
	if(N==0){
		cout<<'1';
		return  ;}
    result[50]=2;        //????
    for(i=2;i<=N;i++)
    {
        for(j=50;j>=0;j--)
        {
        	result[j]=result[j]*2+num;
        	if(result[j]>=10){
        		result[j]=result[j]-10;
        	    num=1;
        	}
        	else
        		num=0;
        }
    }
    for(i=0;i<=50;i++) //?????
    	if(result[i]!=0)
    		break;
    for(j=i;j<=50;j++) //??
    	cout<<result[j];
    return ;
}
int main()
{
	int a[45] = {0};
	int n;

	
	cin >> n;
	
	a[0] = 1;
	
	for(int i = 0; i < n; i ++)
	{
		int bit = 0;
		int p;
		
		for(int j = 0; j <= 40; j ++)
		{
			p = a[j] * 2 + bit;
			a[j] = p % 10;
			bit = p / 10;
		}
	}
	
	int start;
	
	for(int i = 40; i >= 0; i --)
	if(a[i] != 0)
	{
		start = i;
		break;
	}
	
	for(int i = start; i >= 0; i --)
	cout << a[i];
	
	return 0;
}
/**
 * ????1000012815_2.cpp
 * ?????2?N??
 * ??????
 * ???2010.12.15
 */

int main()
{
	int n;
	cin >> n;     //??2?N??????

	//number???????????flag???????????????
	int number[101], flag[101] = {0};  
	memset(number, -1, sizeof(number));  //?number?????-1
	number[100] = 1;   //?????????1
	int i, j;
	for (j = 1; j <= n; j++)   //?????
	{
		for (i = 100; number[i] != -1; i--)  //????????2
			if (number[i] * 2 > 9)     //????????
			{
				number[i] = number[i] * 2 - 10;
				flag[i - 1] = 1;    //??????????????1
			}
			else 
				number[i] *= 2;
		for (i = 99; number[i + 1] != -1; i--)  //?????????
			if (flag[i] == 1)
				if (number[i] != -1)   //??????????????1
					number[i]++;
				else
					number[i] = 1;   //?????????1
		memset(flag, 0, sizeof(flag));  //???????
	}

	int noZero = 0;
	while (number[noZero] == -1)  //????????
		noZero++;
	for (j = noZero; j <= 100; j++)  //???????
		cout << number[j];
	cout << endl;

	return 0;
}
//*********************************
//* ??? 2?N??               *
//* ??? ??                   *
//* ??? 2013.11.15             *
//*********************************

int main()
{
	int N;
	int a[50] = {0}, len = 1;
	a[0] = 1;
	cin >> N;

	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < len; j++)
		{
			a[j] *= 2;
		}

		for (int m = 0; m < len; m++)
		{
			if (a[m] > 9)
			{
				a[m] -= 10;
				a[m+1] += 1;
				if (m == len - 1) len++; 
			}
		}
	}

	for (int k = len - 1; k >= 0; k--) cout << a[k];
	return 0;
}
int main(){
	int ai[100];
	int i,j,n;
	scanf("%d",&n);
	ai[99]=1;
	for(i=0;i<99;i++){
		ai[i]=0;
	}
	for(j=0;j<n;j++){
	    for(i=0;i<100;i++){
			ai[i]*=2;
			if(ai[i]>9){
				ai[i]=ai[i]-10;
				ai[i-1]+=1;
			}
		}
	}
	for(i=0;i<100;i++){
		if(ai[i]!=0){
			for(j=i;j<100;j++){
			printf("%d",ai[j]);
			}
			break;
		}
	}
	return 0;
}
int main()
{
	int n,i,j,sz[100];
	scanf("%d",&n);
	for(i=0;i<99;i++){
		sz[i]=0;
	}
	sz[99]=1;
	for(j=1;j<=n;j++){
		for(i=0;i<100;i++){
			sz[i]=sz[i]*2;
		}
		for(i=0;i<100;i++){
		    if(sz[i]>=10){
				sz[i]=sz[i]-10;
			    sz[i-1]=sz[i-1]+1;			
			}
		}
	}
	
	for(i=0;i<100;i++){
		if(sz[i]!=0){
			for(j=i;j<100;j++){
				printf("%d",sz[j]);
			}
			break;
		}
	}
	return 0;
}
int main()
{
	int i,j,k,n,e=0,a[50]={0};
	scanf("%d",&n);
	a[0]=1;
	for(i=1;i<=n;i++){
		for(j=0;j<50;j++){
			a[j]*=2;}
			for(k=0;k<50;k++){
				if(a[k]>9){
					a[k]=a[k]%10;
					a[k+1]+=1;
				
			}
		}
	}
	for(i=49;i>=0;i--){if(e==1){
			printf("%d",a[i]);
		}
		if(a[i]!=0){
			if(e==0){
				printf("%d",a[i]);
				e=1;
			}
		}
		
	}
	return 0;
}
int main ()
{
	int b[10000]={2};
	int c=0,d=0,n=0;
	cin>>n;
	if(n==0)
	{
		cout<<"1";
	}
	else
	{
	for (int i=1;i<n;i++)
	{
		for(int j=1;j<=10000;j++)
		{
			b[j-1]=b[j-1]+b[j-1]+c;
			if(b[j-1]>9)
			{
				c=1;
				b[j-1]=b[j-1]-10;
			}
			else
			{
				c=0;
			}
		}
	}
	for(int i=10000;i>0;i--)
	{
		if(b[i-1]!=0)
		{
			d=i;
			break;
		}
	}
	for(int i=d;i>0;i--)
	{
		
		cout<<b[i-1];
	}
	}
	return 0;
}
int main()
{
	char num[101][200];
	int temp[200];
	int n,i,j=1,k,t;
	for ( i=0;i<200;i++ )
	{
		temp[i]=0;
	}
	cin>>n;
	num[0][0]='1';
	num[0][1]='\0';
	for ( i=1;i<n+1;i++ )
	{
		for ( t=0;t<200;t++ )
		{
			temp[t]=0;
		}
		for (j=0;num[i-1][j]!='\0';j++ )
		{
			temp[j]=(num[i-1][j]-'0')*2;
		}
		for ( k=0;num[i-1][k]!='\0';k++ )
		{
			if ( temp[k]>=10 )
			{
				temp[k+1]+=temp[k]/10;
				temp[k]=temp[k]%10;
			}
		}
		num[i][0]=temp[0]+'0';
		for ( j=1;( num[i-1][j]!='\0') && j<200 ;j++ )
		{
			num[i][j]=temp[j]+'0';
		}
		if ( temp[j] != 0 )
		{
			num[i][j]=temp[j]+'0';
			j++;
		}
		num[i][j]='\0';
	}
	for ( j=j-1;j>=0;j-- )
	{
		cout<<num[n][j];
	}
	cout<<endl;
	return 0;
}
int main()
{
	int n,i,j,point,p;
    char str1[50],str2[50];
	cin>>n;
	if(n==0)
		cout<<'1'<<endl;
	else
	{
	for(i=0;i<50;i++)
	{
		str1[i]='0';
		str2[i]='0';
	}
	str1[0]='1';
	//???
		for(i=1;i<=n;i++)
		{
			for(p=49;p>=0;p--)
				if(str1[p]!='0'||str2[p]!='0')
				{
					point=p+1;
					break;
				}//?????

            for(j=0;j<=point;j++)
			{
				
				str2[j+1]=((str1[j]-'0')*2+(str2[j]-'0'))/10+'0';//???????
                str1[j]=((str1[j]-'0')*2+(str2[j]-'0'))%10+'0';
				
			}
		}
		for(j=49;j>=0;j--)
		{
			if(str1[j]!='0')
			{
	          point=j;
			  break;
			}
		}
		for(j=point;j>=0;j--)
			cout<<str1[j];
		cout<<endl;
	}
		return 0;
	}
int main()
{
	int n,i,j,jinwei,a[50]={0};
	cin>>n;
	a[0]=1;
	for(i=1;i<=n;i++)
	{
		jinwei=0;
		for(j=0;j<49;j++)
		{
			a[j]=a[j]*2+jinwei;
			if(a[j]>=10)
			{
				a[j]=a[j]-10;
				jinwei=1;
			}
			else
				jinwei=0;
		}
	}
	i=49;
	while(a[i]==0)
		i--;
	for(;i>=0;i--)
		cout<<a[i];
	return 0;
}
char result[30] = {0};
void mul();
int main()
{
    int n;
    result[0] = '1';
    cin >> n;
    int i;
    if(n == 0)   cout << result << endl;
    else
    {
        for(i = 1; i <= n; i++)
            mul();
        for(i = strlen(result) - 1; i >= 0; i--)
            cout << result[i] ;
    }
    return 0;
}
void mul()
{
    int k;
    int div = 0;
    k = strlen(result);
    for(int i = 0; i < k; i++)
    {
       int t;
       t = result[i] - '0';
       t = t * 2;
       result[i] = t % 10 + div + '0';
       div =  t / 10;
       if(i == k - 1 && div != 0)
            result[i + 1] = div + '0';
    }   
}
int main(){
	int i,j,n;
	int b[15]={0};
	int t=100000000;
	cin>>n;
	if(n==0) cout<<1;
	else{
	b[0]=2;
	for(i=1;i<n;i++)
	{
		for(j=0;j<15;j++){
			b[j]*=2;
		}
		for(j=0;j<14;j++)
			if(b[j]>=t) {b[j+1]++; b[j]-=t;}
	}
	for(i=14;b[i]==0;i--);
	for(j=i;j>=0;j--) {
		if(i!=j&&b[j]<t/10) cout<<'0';
		cout<<b[j];
	}
	}
	return 0;
}
int main()
{
	int n, i, j, k = 0;
	int a[100];
         cin >> n;
	memset(a, 0, sizeof(a));
	a[0] = 1;
	if (n == 0)
		cout << "1" << endl;
	else
	{for (i = 1; i <= n; i++)
	{
		for (j = 0; j< 100; j++)
		{
			a[j] = 2* a[j];
		}
		for (j = 0;j< 100; j++)
		{
			if (a[j] > 9)
			{a[j]  = a[j] - 10;
			a[j+1]++;}
		}
	}
	for (i = 99; i >= 0;i--)
	{
		if (a[i] ==0)
			k++;
		else
			break;
	}
	for (i = 99 - k; i>=0; i--)
	{
		cout << a[i];
	}
	cout << endl;}
	return 0;
}
int main()
{
	int num[10000] = {0};
	int n = 0;
	cin >> n;
	num[0] = 1; num[1] = 1;
	for (; n > 0; n--)
	{
		for (int i = 1; i <= num[0]; i++) num[i] *= 2;
		for (int i = 1; i <= num[0]; i++) 
		{
			num[i+1] += num[i] / 10;
			num[i] = num[i] % 10;
		}
		if (num[num[0]+1] > 0) num[0] ++;
	}

	for (int i = num[0]; i > 0; i--) cout << num[i];
	return 0;
}
//***********************************************************************
//*???8-5.cpp                                                         
//*?????2?N??                                                         
//*??????                                                          
//*???2013?11?19?                                                   
//***********************************************************************
int main()
{
	int  i, j, N, index = 0, temp, jinwei; //index????????????temp??????
	int result[100];                
	cin >> N;	
	if(N == 0)                              //N?0??
		cout << "1" << endl;
	else
	{
		result[0] = 2;                      //??????2
		for(i = 1; i < N ; i++)
		{
			jinwei = 0;						//??????????????0
			for(j = 0; j <= index; j++)		//?????????????
			{
				temp = 1;                   //?????? ???????                   
				if(j == 0)
				{
					temp = result[j] * 2;   
					if(temp >= 10)          //?????????????????
						jinwei = 1;
				}
				else
				{
					temp = result[j] * 2; 
                    if(jinwei == 1)
						temp ++;           //?????????????1
					if(temp >= 10)
						jinwei = 1;
					else
						jinwei = 0;
				}
				result[j] = temp % 10;     //????????10???
			}
			if(jinwei == 1)                // ?????????????????????
			{
				index ++;
				result[index] = 1;         //?????????1
			}		}			
		for(i = index; i >= 0; i--)	       //??????????		
			cout << result[i];		
	}
	return 0;
}
int main()
{
	int n,p;
	cin >> n;
	if (n>0)
	{
	p=ceil(log10(2)*n);
	char a[p];
	for (int i=0;i<p;i++)
	{
		a[i]='0';
	}
	a[p-1]='1';
	for (int i=1;i<=n;i++)
	{
		for (int j=0;j<p;j++)
		{
			if (a[j]<'5')
			a[j]=(a[j]-'0')*2+'0';
			else if (a[j]>='5')
			{
			a[j]=(a[j]-'0')*2-10+'0';
				a[j-1]++;
			}
		}
	}
	for (int i=0;i<p;i++)
	{
	cout << a[i];
	}
	cout << endl;
	}
	if (n==0)
	cout << 1 << endl;
	return 0;
}
int main(){
	int n,i,p;
	int an1[500]={0},an2[500]={0},sum[500]={0};
	 an1[0]=1;
	 an2[0]=1;
    scanf("%d",&n);
	if(n==0){
		printf("1");
	}
	else{
	for(p=0;p<n;p++){
        int carry = 0;       //???
	    for (i = 0; i < 500; i++){
	    	sum[i] = an1[i] + an2[i] + carry;
		  if(sum[i] >= 10){
		    sum[i] -= 10;
		    carry = 1;
		  } else {
		    carry = 0;
		  }
		}
		for(i=0;i<500;i++){
            an1[i]=an2[i]=sum[i];
		}
	}
      i = 500-1;
	while(sum[i]==0) {          //???????0??
		 i--; 
	  }
	for(;i>=0;i--){                    //??????0?
		printf("%d", sum[i]);   //??????
	}
	printf("\n");
	}
	return 0;
}
int main()
{
    int n,i;
    double a=1.0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
       a=a*2;
    }
    printf("%.0lf",a);
    scanf("%d",&n);
    return 0;
}
double f(double a);
int main(){
    double n,m;
    scanf("%lf",&n);
	m=f(n);
	printf("%.0lf",m);
	return 0;
}
double f(double a)
{
    double b;
	if(a==0) b=1.0;
    else if(a==1) b=2,0;
	else b=f(a-1)*2.0;
	return b;
}
int main()
{
	int n;
	char a[200];
	int len;
	int p = 0,q = 0;
	memset(a,0,sizeof(a));
	a[0] = '2';
	cin >> n;
	if (n == 0)
		cout << "1" << endl;
	else
	{
		for (int i = 1; i < n; i++)
		{
			len = strlen(a);
			for (int j = 0; j < len; j++)
			{
				p = a[j] - '0';
				a[j] = (char) ((p * 2) % 10 + '0' + q);
				q = (p * 2) / 10;
			}
			if (q > 0)
				a[len] = (char) (q + '0');
			p = 0;
			q = 0;
		}
		len = strlen(a);
		for (int i = len - 1; i >= 0; i--)
			cout << a[i];
	}
	return 0;
}
int main()
{
	int num[200];
	int start;
	int i , j , k;
	int n;
	for(i = 0 ; i < 199 ; i++)
		num[i] = 0;
	num[199] = 1;
	cin >> n;
	for(i = 1 ; i <= n ; i++)
	{
		for(j = 0 ; j < 200; j++)
		{
			num[j] = num[j] * 2;
			for(k = 1 ; k < 200; k++)
			{
				if(num[k] >= 10)
				{
					num[k] = num[k] - 10;
					num[k-1]++;
				}
			}
		}
	}
	for(i = 0 ; i < 200 ; i++)
	{
		if(num[i] != 0)
		{
			start = i;
			break;
		}
	}
	for(i = start ; i < 200 ; i++)
			cout << num[i];
	cout << endl;
	return 0;
}
int main(){
    int i,k,n,m,t,cf[100]={0};
    int jinwei=0;
    cf[0]=1;
    scanf("%d",&n);
    t=0;
    for(i=0;i<n;i++){
                     for(k=0;k<=t;k++){
                                       cf[k]=cf[k]*2+jinwei;
                                       if(cf[k]>=10){
                                                   cf[k]=cf[k]%10;
                                                   jinwei=1;
                                                   }
                                                   else{
                                                        jinwei=0;
                                                        }
                                                        }                               
                     for(m=99;cf[m]==0;m--);
                     t=m+1;             
                     }                     
    for(i=99;cf[i]==0;i--);
    for(;i>=0;i--){
                   printf("%d",cf[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 )
		*( q + j++ ) = *( p + --i ) ;
	i = 0 ;
	while ( *( p + i ) != '\0' )
	{
		*( p + i ) = *( q + 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 argc, char *argv[])
{
    int i,k,an1[1000]={0},an2[1000]={0},j;
    char s1[1000]={0},s2[1000]={0};
    an1[0]=1; //overturn
    cin>>k;
    while(k>0)
    {
              k--;
              for(i=0;i<1000;i++) an1[i]*=2;
              for(i=0;i<1000;i++) {if(an1[i]>=10) {an1[i+1]++;an1[i]-=10;}}
    }
    i=999;
    while(an1[i]==0) i--;
    j=i; 
    for(i=j;i>=0;i--)
    cout<<an1[i];          
    return EXIT_SUCCESS;
}
int main(){
    int n,i;
    double y,a;
    scanf("%d",&n);
    if(n>0){
            a=1.0;
            for(i=0;i<n;i++){
                             y=a*2;
                             a=y; 
                             }
                             }
                          if(n==0){
                                   y=1.0;
                                   }  
                                   printf("%.0lf",y);
                                                                      return 0;
                                   }
int main(){
	int n, num=1, i, j, flag=0;
	int a[50]={1};
	cin >> n;
	for (i=1;i<=n;i++){
		flag=0;
		for (j=0;j<num;j++){
			a[j]=a[j]*2+flag;
			flag=0;
			if (a[j]>=10){
				a[j]=a[j]-10;
				flag=1;
			}
		}
		if (flag==1){
			a[num]=1;
			num++;
		}
	}
	for (i=num-1;i>=0;i--){
		cout << a[i];
	}
}
int main()
{
	int num[101] = {0};
	num[100] = 1;
	int i, N, j;
	cin >> N;
	for(i = 1; i <= N; i++)
	{
		for(j = 1; j <= 100; j++)
		{
			if(num[j] * 2 < 10)
				num[j] = num[j] * 2;
			else
			{
				num[j] = num[j] * 2 - 10;
				num[j - 1]++;
			}
		}
	}
	for(i = 1; i <= 100; i++)
	    if(num[i] != 0) break;
	for(j = i; j <= 100; j++)
		cout << num[j];
	return 0;
}
//********************************
//*??2?N??                 **
//*????? 1300012848        **
//*???2013.11.16             **
//********************************
int main()
{
	const int MAX_LEN = 200;
	int n, i, j, k = MAX_LEN , jinwei[MAX_LEN + 1], flag[MAX_LEN + 1] = {0};
	int a[MAX_LEN + 1];
	memset(jinwei,0,sizeof(jinwei));
	memset(a,0,sizeof(a));
	memset(flag,0,sizeof(flag));
	cin >> n;
	if (n == 0)
		cout << "1" << endl;
	else
	{
		a[0] = 1;
		for (i = 1; i <= n; i++)
		{	
			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;
					a[j+1] ++;
				}
		}
	while (a[k] == 0)
		k--;
	for(; k >= 0; k--)
	cout << a[k];
	}
	return 0;
}
int main()
{
int a[1000];
a[0]=1;
int num,i;
for(i=1;i<1000;i++)
	a[i]=-1;
cin>>num;
while(num--)
{
	for(i=0;i<1000;i++)
	{
		if(a[i]!=-1)
		{
			a[i]*=2;
		}
		else
			break;
	}
	for(i=0;i<1000;i++)
	{
		if(a[i]>9)
		{
			a[i]=a[i]%10;
			if(a[i+1]==-1)
				a[i+1]=0;
			a[i+1]++;
		}
		else if(a[i]==-1)
			break;
		else
			continue;
	}
}
for(i=999;i>=0;i--)
{
	if(a[i]!=-1)
		cout<<a[i];
}
}
char multiply_2(char a[110])
{
	int len=strlen(a);
	int b[110]={0},c[110]={0};
	for(int i=0;i<len;i++)
	{
		b[i]=a[len-i-1]-'0';
	}
	for(int i=0;i<len;i++)
	{
		if(b[i]*2+c[i]>=10)
		{
			c[i+1]++;
			b[i]=b[i]*2+c[i]-10;
		}
		else
		{
			b[i]=b[i]*2+c[i];
		}
	}
	int p=0;
	if(c[len]>0)
	{
		p=1;
		b[len]+=c[len];
	}
	if(p==1)
	{
		len++;
	}
	for(int i=0;i<len;i++)
		a[i]=b[len-i-1]+'0';
	return a[110];
}
int main()
{
	int n=0;
	cin>>n;
	char a[110]={0};
	a[0]='1';
	for(int i=0;i<n;i++)
		multiply_2(a);
	cout<<a<<endl;
	return 0;
}
//**************************
//*?????2?N??  **
//*?????? 1200012888 **
//*???2013.11.15**
//**************************
int main()
{
	int n;
	cin >> n;
	int buf[Max_Size] = {1};
	while(n)
	{
		for(int i = 0;i < Max_Size ; i++)
		{
			buf[i] = 2 * buf[i] ;
		}
		for(int i = 0 ; i < Max_Size ; i++)
		{
			buf[i + 1] = buf[i] / 10 + buf[i + 1];
			buf[i] = buf[i] % 10;
		}
		n --;
	}
	int flag = 0;
	for (int i = Max_Size - 1 ; i >= 0 ; i--)
	{
		if(flag)
		{
			cout << buf[i];
		}
		else if(buf[i] != 0)
		{
			cout << buf[i];
			flag = 1;
		}
	}
	return 0;
}
int num[40]={0};
int jinwei[40]={0};
void square()  //?2
{
	for (int i=39;i>0;i--)
	{
		int a=num[i]*2;
		jinwei[i-1]=a/10;
		num[i]=a%10+jinwei[i];
	}
}
int main ()
{
	num[39]=1;     //???2?0??=1
	int n;
	cin>>n;
	for (int i=0;i<n;i++)    //?n?2
		square();
	int head;
	for (int i=0;i<40;i++)
		if (num[i]!=0)
		{
			head=i;
			break;
		}
	for (int i=head;i<40;i++)
		cout<<num[i];

	return 0;
}
int main ()
{
    int n,j,i,k,t=1,l,p=0;
    int a[50000]={0};
    scanf("%d",&n);
    a[0]=1;
    l=1;
    for(i=0;i<n;i++)
    {t=l;
                    for(j=0;j<t;j++)
                    {
                                    a[j]=2*a[j];
                                    if(a[j]+p>=10){a[j]=a[j]+p-10;p=1;}else{a[j]+=p;p=0;}
                                    if((j==t-1)&&p==1) {a[j+1]=1;l++;p=0;}
                    }
    
    
    
                    
    } 
    for(i=l-1;i>=0;i--)
    printf("%d",a[i]);
    getchar();getchar();getchar();
    
    }