semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
char num1[270],num2[270];int i,j,n1,n2;int ans[270]={0},num[270]={0};
void sup(int,int);
int main(void){
	cin>>num1>>num2;
	int n1=strlen(num1),n2=strlen(num2);
	ans[0]=0;
	if(n1>n2){
        for(i=0;i<n1;i++){//???
            ans[i+1]=(int)num1[i]-48;
        }
        for(i=0;i<n2;i++)num[i]=(int)num2[i]-48;//???
    }
	else{
		for(i=0;i<n2;i++){
            ans[i+1]=(int)num2[i]-48;
        }
		for(i=0;i<n1;i++)num[i]=(int)num1[i]-48;
    }
	int n=min(n1,n2);
	int l=max(n1,n2);
	sup(n,l);
	return 0;
}int it;
void sup(int n,int l){
	if(n==0&&l>0){
        for(i=max(strlen(num1),strlen(num2));i>0;i--){
            if(ans[i]>=10){
                ans[i]%=10;ans[i-1]+=1;
            }
        }
        for (i = 0; ans[i] == 0 && max(strlen(num1),strlen(num2)); i++);
        if (i == max(strlen(num1),strlen(num2)))
            cout << 0;
        else {
            for(;i<=max(strlen(num1),strlen(num2));i++)
                cout<<ans[i];
        }
	}
	else if(n==0){
        for (i = 0; ans[i] == 0 && i < max(strlen(num1),strlen(num2)); i++);
		if (i == max(strlen(num1),strlen(num2)))
            cout << 0;
        else {
            for(;i<=max(strlen(num1),strlen(num2));i++)
                cout<<ans[i];
        }
		return;
	}
	else{
		it=ans[l]+num[n-1];
		if(it<10){ans[l]=it;}
		else{
			ans[l]=it%10;ans[l-1]+=1;
		}
		sup(n-1,l-1);
	}
}
int main()
{
    char sa[250],sb[250],s[250],t[250],temp;
    int la,lb,i,l,c=0,dl; 
    scanf("%s %s",sa,sb); 
    la=strlen(sa);
    lb=strlen(sb);
	if (la>lb)
		l=la;
	else
	{
		l=lb;
		strcpy(t,sa);
		strcpy(sa,sb);
		strcpy(sb,t);
	}
	dl=abs(la-lb);
    for(i=l;i>0;i--)
	{
		if(i-dl-1>=0)
			temp=sb[i-dl-1];
		else
			temp='0';
		if ((int)sa[i-1]+(int)temp+c-96>9)
		{
			s[i]=sa[i-1]+temp-58+c;
			c=1;
		}
		else
		{
			s[i]=sa[i-1]+temp-48+c;
			c=0;
		}
    } 
	if (c==1)
		s[0]='1';
	else
		s[0]='0';
	c=1;
    for (i=0;i<=l;i++)
	{
		if (s[i] !='0' || c==0)
		{
			printf("%c",s[i]);
			c=0;
		}
	}
	printf("\n");
	return 0;
}
int main()
{
	char num1[251]={0},num2[251]={0};
	int i,j,l;
	int anw1[251]={0},anw2[251]={0};
	cin>>num1;
	cin>>num2;
	l=strlen(num1);
	for(j=0,i=strlen(num1)-1;i>=0;i--,j++)
			anw1[j]=num1[i]-'0';
	for(j=0,i=strlen(num2)-1;i>=0;i--,j++)
			anw2[j]=num2[i]-'0';
	for(i=0;i<=250;i++)
	{       
		    if(anw1[i]+anw2[i]<10)  
			{ 
				anw1[i]=anw1[i]+anw2[i];
				continue;
			}
			if(anw1[i]+anw2[i]>=10)
			{
			
				l=anw1[i]+anw2[i]-10;
				anw1[i]=l;
				anw1[i+1]++;
			    continue;
			}
	}
	for(i=250;i>=0;i--)
			if(anw1[i]!=0)
			{
				for(j=i;j>=0;j--)
					cout<<anw1[j];
				goto lable;
			}
	cout<<"0"<<endl;
lable:return 0;
}
int main()
{
	char x[300]={0},y[300]={0};
	int a[300]={0},b[300]={0},c[300]={0};
	int flag=0,lx,ly,n,k,i,flag2=0;
	cin>>x;
	cin>>y;

	lx=strlen(x);
	ly=strlen(y);

	n=0;
	for(i=lx-1;i>=0;i--)
	{
		a[n]=x[i]-'0';
		n++;
	}
	k=0;
	for(i=ly-1;i>=0;i--)
	{
		b[k]=y[i]-'0';
		k++;
	}


	for(i=0;i<lx||i<ly;i++)
	{
		c[i]+=a[i]+b[i];

		if(c[i]>=10)
		{
			c[i+1]=c[i+1]+c[i]/10;
			c[i]=c[i]%10;

		}
	}


	for(i=299;i>=0;i--)
	{
		if(c[i]!=0||flag==1)
		{
			cout<<c[i];
			flag=1;
		}

	}

	for(i=0;i<300;i++)
	{
		if(c[i]!=0)
		{
			flag2=1;
		}
	}

	if(flag2==0)
	{
		cout<<"0";
	}

	return 0;
}
int main()
{
    char a[250+1],b[250+1],c[251+1]={'\0'};
    int i;
    int n1=0,n2=0;//n1,n2???????0??
    cin>>a;
    cin>>b;

    int l1=strlen(a)/sizeof(char),
        l2=strlen(b)/sizeof(char);
    c[l1]='0';c[l2]='0';//???????????0 ????????1

    for(i=0;i<l1-1;i++)
    {
        if(a[i]!=48)break;
        a[i]='\0';n1++;
    }
    for(i=0;i<l2-1;i++)
    {
        if(b[i]!=48)break;
        b[i]='\0';n2++;
    }

    for(i=0;i<l1/2;i++)
    {
        int temp;
        temp=a[i];a[i]=a[l1-1-i];a[l1-1-i]=temp;
    }
    for(i=0;i<l2/2;i++)
    {
        int temp;
        temp=b[i];b[i]=b[l2-1-i];b[l2-1-i]=temp;
    }
    l1=l1-n1;l2=l2-n2;//?????????????0????
//////////////////////////?????? ????
    int max=l1;
    if(l1>l2)
    {
        max=l1;
        for(i=l2;i<l1;i++)
        b[i]='0';
    }
    if(l1<l2)
    {
        max=l2;
        for(i=l1;i<l2;i++)
        a[i]='0';
    }
//////////////////////////???????0 ?2?????? ????
    for(i=0;i<=max;i++)
    c[i]='0';
    for(i=0;i<max;i++)
    {
        if(a[i]-48+b[i]-48+c[i]-48<10)//???
        c[i]=a[i]-48+b[i]-48+c[i]-48+48;
        else//???
        {
            c[i]=a[i]-48+b[i]-48+c[i]-48-10+48;
            c[i+1]='1';
        }
    }
//////////////////////////??
    if(c[max]=='1')//???????1 ????????1 ???
    {
        cout<<1;
        for(i=max-1;i>=0;i--)
        cout<<c[i];
    }
    else//????????1 ?????
    {
        for(i=max-1;i>=0;i--)
        cout<<c[i];
    }
    cout<<endl;
//////////////////////////??

    return 0;
}
int main()
{
	char as[201],bs[201];
	int a[201],b[201],sum[201];
	int lena,lenb,len,jinwei=0;
	int i,j;
	scanf("%s %s",as,bs);
	lena=strlen(as);
	lenb=strlen(bs);
	len=lena>lenb?lena:lenb;
         memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	for(i=200;i>200-lena;i--)
		a[i]=as[lena-201+i]-'0';
	for(i=200;i>200-lenb;i--)
		b[i]=bs[lenb-201+i]-'0';
	for(i=200;i>200-len-1;i--)
	{
		sum[i]=(jinwei+a[i]+b[i])%10;
		jinwei=(jinwei+a[i]+b[i])/10;
	}
	for(i=200-len;i<=200;i++)
	{
		if(sum[i]!=0)
		{
			for(j=i;j<=200;j++)
				printf("%d",sum[j]);
                       break;
		}
else if(i==200)
printf("0\n");	
	}
}
int main()
{
	char p[251],q[251];
	int x,y,n,t=0,i,j,k,h,u,v;
    int a[250],b[250],c[251];
	scanf("%s",p);
	scanf("%s",q);
    x=strlen(p);
    y=strlen(q);
	for(h=0;h<250;h++)
	{
	a[h]=b[h]=c[h]=0;
	}
	c[250]=0;
	for(i=0;i<x;i++)
	{
	    a[i]=p[x-1-i]-'0';
	}
	for(j=0;j<y;j++)
	{
	    b[j]=q[y-1-j]-'0';
	}
	if(x>y)  n=x;
	else     n=y;
	for(k=0;k<n;k++)
	{
	 c[k]=a[k]+b[k]+t;
     t=c[k]/10;
	 c[k]=c[k]%10;
	}
	c[n]=t;
	for(u=250;u>=0;u--)
	{
	   if(c[u]!=0)
		   break;
	}
	if(u==-1)  printf("0");
	else
	{
		for(v=u;v>=0;v--)
		{
		printf("%d",c[v]);
		}	
	}
    return 0;
}
int main()
{
	char c1[260],c2[260],c[260];
	cin>>c1>>c2;
	int len1=strlen(c1);
	int len2=strlen(c2);
	int len=len1+1;
	for( int i=0 ; i<260 ; i++ )
	{
		c[i]=0;
	}
	if( len2>len1 )
	{
		len=len2+1;
	}
	if( c1[0]=='0' && c2[0]=='0' && len1==1 && len2==1 )
	{
		cout<<"0"<<endl;
	}
	else
	{
		for( int i=len1-1 ; i>=0 ; i-- )
		{
			c1[i+len-len1]=c1[i];
		}
		for( int i=len-len1-1 ; i>=0 ; i-- )
		{
			c1[i]='0';
		}
		for( int i=len2-1 ; i>=0 ; i-- )
		{
			c2[i+len-len2]=c2[i];
		}
		for( int i=len-len2-1 ; i>=0 ; i-- )
		{
			c2[i]='0';
		}
		for( int i=len-1 ; i>=0 ; i-- )
		{
			c[i]+=c1[i]+c2[i]-'0';
			if( c[i]>'9' )
			{
				c[i]-=10;
				c[i-1]++;
			}
		}
		for( int i=0 ; ; i++ )
		{
			if( c[i]!='0' )
			{
				for( int j=i ; j<len ; j++ )
				{
					cout<<c[j];
				}
				break;
			}
		}
	}
}
int main()
{
	char string1[250],string2[250];
	scanf("%s",string1);
	scanf("%s",string2);
	int a,b;
	a=strlen(string1);
	b=strlen(string2);
	int c;
	c=a>b?a:b;
    int string3[250],string4[250];
	int i;
	for(i=0;i<a;i++)
	{
		string3[i]=string1[a-i-1]-48;
	}
	for(i=0;i<b;i++)
	{
        string4[i]=string2[b-i-1]-48;
	}
	if(a>b)
	{
		for(i=b;i<a;i++)
			string4[i]=0;
	}
	if(a<b)
	{
		for(i=a;i<b;i++)
			string3[i]=0;
	}

	
	int string5[250],string6[250];
	for(i=0;i<=c;i++)
		string5[i]=0;
	for(i=0;i<c;i++)
	{
		string6[i]=string3[i]+string4[i]+string5[i];
		if(string6[i]>9)
		{
			string6[i]-=10;
			string5[i+1]=1;
		}
	}
	if(string5[c]!=0)
	{
		printf("%d",string5[c]);
	    for(i=c-1;i>=0;i--)
		{
		printf("%d",string6[i]);
		}
    	printf("\n");
	}
	else
	{
		for(i=c-1;i>=0;i--)
		{
			if(string6[i]!=0)
				break;
		}
		int m;
		for(m=i;m>=0;m--)
		{
		printf("%d",string6[m]);
		}
		printf("\n");
	}
	return 0;
}
int xa[300],xb[300],xx[300];
char a[300],b[300];
int main(){
    int lena,lenb,len,i;
    gets(a);
    gets(b);
    lena=0;
        for(i=0;i<=250;i++){
        xa[i]=0;
        xb[i]=0;
        xx[i]=0;
    }
    while(a[lena]!='\0'){
        xa[lena]=a[lena]-'0';
        lena++;
    }
    lenb=0;
    while(b[lenb]!='\0'){
        xb[lenb]=b[lenb]-'0';
        lenb++;
    }
    for(i=0;i<lena/2;i++){
        int temp=xa[i];xa[i]=xa[lena-i-1];xa[lena-i-1]=temp;
    }
    for(i=0;i<lenb/2;i++){
        int temp=xb[i];xb[i]=xb[lenb-i-1];xb[lenb-i-1]=temp;
    }
    if(lena>lenb)len=lena;else len=lenb;
    int x=0;
    for(i=0;i<len;i++){
        x=x+xa[i]+xb[i];
        xx[i]=x %10;
        x=x/10;
    }
    xx[len]=x;
    while(xx[len]==0 && len >0)len--;
    for(i=len;i>=0;i--)printf("%d",xx[i]);
    printf("\n");
    return 0;
}
int maxi(int a,int b)
{
	if(a<b)
		return b;
	else return a;
}
int main()
{
	char a[260],b[260],flag=0;
	cin.getline(a,251);
	cin.getline(b,251);
	int na[260],nb[260],sum[260],i,j=0;
	int lena=strlen(a),lenb=strlen(b);
	memset(na,0,sizeof(na) );
	memset(nb,0,sizeof(nb) );
	memset(sum,0,sizeof(sum) );
	for(i=lena-1;i>=0;i--)
		na[j++]=a[i]-'0';
	j=0;
	for(i=lenb-1;i>=0;i--)
		nb[j++]=b[i]-'0';
	int m=maxi(lena,lenb);
	for(i=0;i<m;i++)
	{
		sum[i]+=na[i]+nb[i];
		if(sum[i]>=10)
		{
			sum[i]-=10;
			sum[i+1]++;
		}
	}
	i=m;
	while(sum[i]==0) i--; //???????0??
	if(i==-1)
		cout<<0<<endl;
	for(;i >= 0; i--)
		cout << sum[i]; 
	return 0;
}
/*
 * Name:homework.cpp
 *  Created on: 2012-11-24
 *  Author: Meng Li
 *  Function: ?????
 */



void sum(char a[], char b[]);

int main(){
	char a[250], b[250];
	cin >> a >> b;
	sum(a,b);
	return 0;
}

void sum(char a[], char b[]){
	int length1=0, length2=0, i, count=0;
	int temp=0;
	char c[250];
	length1=strlen(a);
	length2=strlen(b);
	for (i=0;;i++){
		if (i<length1&&i<length2){
			c[i]=a[length1-1-i]-'0'+b[length2-1-i]+temp;
			if (c[i]>'9'){
				c[i]=c[i]-10;
				temp=1;
			}
			else
				temp=0;
			count++;
		}
		else if (i>=length1&&i<length2){
			c[i]=b[length2-i-1]+temp;
			if (c[i]>'9'){
				c[i]=c[i]-10;
				temp=1;
			}
			else
				temp=0;
			count++;
		}
		else if (i<length1&&i>=length2){
			c[i]=a[length1-i-1]+temp;
			if (c[i]>'9'){
				c[i]=c[i]-10;
				temp=1;
			}
			else
				temp=0;
			count++;
		}
		else if (i>=length1&&i>=length2)
			if (temp==1){
				c[i]=temp+'0';
				count++;
				temp=0;
			}
			else
				break;
	}
	for (i=count-1;i>=0;i--)
		if (i==count-1){
			if (c[i]=='0'&&count!=1)
				continue;
			else
				cout << c[i];
		}
		else
			cout << c[i];
}
int main()
{
      char store[300],add1[300]={'\0'},add2[300]={'\0'},sum[300]={'\0'};
      int i,l,j,l1,l2;
      
      scanf("%s",store);
      l=strlen(store)-1;
      for(i=l;i>=0;i--) add1[l-i]=store[i];
      scanf("%s",store);
      l=strlen(store)-1;
      for(i=l;i>=0;i--) add2[l-i]=store[i];
      
      l1=strlen(add1);
      l2=strlen(add2);
      if(l1>l2) 
      {
            for(i=l2;i<=l1;i++) add2[i]='0';
            add1[l1]='0';      
      }
      else 
      {
           for(i=l1;i<=l2;i++) add1[i]='0';
           add2[l2]='0';
      } 
      
      for(i=0; add1[i]!='\0' || add2[i]!='\0'; i++)
      {
            j=(add1[i]-'0')+(add2[i]-'0');
            if(j>=10) add1[i+1]=add1[i+1]+1;
            sum[i]=j%10+'0';
      }
            
      l=strlen(sum);
      for(i=l-1;i>=0;i--) if(sum[i]!='0' || i==0) break;
      for(;i>=0;i--) printf("%c",sum[i]);
      return 0;
}
int main()
{
	char inl[200],ink[200];
	int a[200],b[200],c[200],out[200];
	int len1,len2,i,j,len=1;
	cin>>inl;
	cin>>ink;
	memset(a,0,sizeof a);
	memset(b,0,sizeof b);
	memset(c,0,sizeof c);
	memset(out,0,sizeof out);
	len1=strlen(inl);
	len2=strlen(ink);
	j=0;
	for(i=len1-1;i>=0;i--)
	{
		a[j]=inl[i]-48;
		j+=1;
	}
	j=0;
	for(i=len2-1;i>=0;i--)
	{
		b[j]=ink[i]-48;
		j+=1;
	}
	for(i=0;i<200;i++)
	{
		if(a[i]+b[i]+c[i]>=10)
		{
			c[i+1]+=1;
			out[i]=(c[i]+a[i]+b[i])%10;
		}
		else
		{
			out[i]=c[i]+a[i]+b[i];
		}
	}
	for(i=199;i>=0;i--)
		if(out[i]!=0)
		{
			len=i+1;
			break;
		}
	for(i=len-1;i>=0;i--)
		cout<<out[i];
	return 0;
}
int main()
{   
	char a1[251],a2[251];
	int  b1[251],b2[251];
	memset(b1,0,sizeof(b1));
	memset(b2,0,sizeof(b2));

	cin.getline(a1,251);
	cin.getline(a2,251);
    int l1=strlen(a1),l2=strlen(a2);

	int i,j;
	for(i=0,j=l1-1;j>=0;i++,j--)
		b1[i]=a1[j]-'0';
	for(i=0,j=l2-1;j>=0;i++,j--)
		b2[i]=a2[j]-'0';

	for(i=0;i<=250;i++)
	{
		b1[i]+=b2[i];
		if(b1[i]>=10)
		{
				b1[i]=b1[i]%10;
				b1[i+1]++;
		}
	}

	i=250;
	while(b1[i]==0)
	{
		i--;
		if(i==0)
			break;
	}

	for(;i>=0;i--)
		cout << b1[i];
	cout << endl;
	return 0;
}
void sum(char str1[],char str2[],int m,int n)
{
      char str3[251],b;
      int i,a,x,y=0;
      a=n-m;
      for(i=n-1;i>=0;i--)
      {
         if (i<a) str3[i]=str2[i];
         else
         {              
         b=str2[i]+str1[i-a]-48;
         if (b>57)
            {
                str3[i]=b-10; 
                str2[i-1]=str2[i-1]+1;
                for(x=i-1;x>=0;x--)
                {if (str2[x]==58) {str2[x]='0';str2[x-1]=str2[x-1]+1;}}
            }
        else str3[i]=b;
         }               
      } 
      for(i=0;;i++) {if(str3[i]=='0') y++;else break;}
      if (y==n) printf("%c",'0');
      else
      {for(i=y;i<n;i++)
       printf("%c",str3[i]);
      }
}     
main()
{
     char str1[251],str2[251],str3[251],str4[251];
     int i,m=0,n=0,b;
     scanf("%s",str1);
     scanf("%s",str2);
     for(i=0;str1[i]!='\0';i++)
     {
       m=m+1;
     }
     for(i=0;str2[i]!='\0';i++)
     {
       n=n+1;
     } 
     if(m>n) 
     {
          b=n;n=m;m=b;
          for(i=0;i<=n;i++)
          {
             if(i==0) str3[i]='0';
             else str3[i]=str1[i-1];                 
          }
 
          sum(str2,str3,m,n+1);
     }
     else
     {
         for(i=0;i<=n;i++)
          {
             if(i==0) str4[i]='0';
             else str4[i]=str2[i-1];                 
          }
         sum(str1,str4,m,n+1); 
     }
     
}
char a[300], b[300], c[301];
int la, lb;

void F(){
	int i;
	la = strlen(a);
	lb = strlen(b);
	for(i = 0;i < 300;i++)
		c[i] = '0';
	c[300] = '\0';
	for(i = 299;i > 0;i--){
		if(la - 300 + i >= 0)
			c[i] += a[la - 300 + i] - '0';
		if(lb - 300 + i >= 0)
			c[i] += b[lb - 300 + i] - '0';
		if(c[i] > '9'){
			c[i - 1] ++;
			c[i] -= 10;
		}
	}
	for(i = 0;i < 300;i++){
		if(c[i] != '0')
			break;
	}
	if(i == 300){
		cout << '0' << endl;
		return;
	}
	cout << c + i << endl;
	return;
}

int main(){
	cin >> a >> b;
	F();
	return 0;
}
void main()
{
	char a[255],b[255];
	int x[255],y[255],sum[255],i,j,m,n,p;
	gets(a);
    gets(b);
	memset(x,0,sizeof(x));
	memset(y,0,sizeof(y));
    memset(sum,0,sizeof(sum));
	m=strlen(a);
	for(i=m-1,j=0;i>=0;i--,j++)
		x[j]=a[i]-'0';
	n=strlen(b);
	for(i=n-1,j=0;i>=0;i--,j++)
		y[j]=b[i]-'0';
	p=m>n?m:n;
	for(i=0;i<p;i++)
	{
		sum[i]+=x[i]+y[i];
		if(sum[i]>=10) {
			sum[i]-=10;
			sum[i+1]++;
		}
	}
	
	while(sum[p]==0)
		p--;
	if(p<0) printf("0");
	else {
		for(i=p;i>=0;i--)
		printf("%d",sum[i]);
	}

}
int main()
{
	char szline1[202];
	char szline2[202];
	int an1[202];
	int an2[202];
	cin.getline(szline1, 202);
	cin.getline(szline2, 202);
	int len1 = strlen(szline1);
	int len2 = strlen(szline2);
	memset(an1, 0, sizeof (an1));
	memset(an2, 0, sizeof(an2));
	for (int i = len1 - 1, j = 0; i >= 0; i --)
		an1[j ++] = szline1[i] - '0';
	for (int i = len2 - 1, j = 0; i >= 0; i --)
		an2[j ++] = szline2[i] - '0';
	int begin;
	for (int i = 0; i < 202; i ++)
	{
		an1[i] += an2[i];
		if (an1[i] >= 10)
		{
			an1[i] -= 10;
			an1[i + 1] ++;
		}
		if (an1[i])
			begin = i;
	}
	for (int i = begin; i >= 0; i --)
		cout << an1[i];
	cout << endl;
	return 0;
}
int add(int maxlen,int *num1,int *num2);
int maxlen,len1,len2,highestpos,num1[256],num2[256];
char a[256],b[256];
int main()
{
   int i,j;
   cin>>a>>b;
   len1=strlen(a);
   len2=strlen(b);
   maxlen=(len1>len2)? len1:len2;
   for(i=0,j=len1-1;i<len1;i++,j--)
	   num1[i]=a[j]-'0';
   for(i=0,j=len2-1;i<len2;i++,j--)
	   num2[i]=b[j]-'0';
   highestpos=add(maxlen,num1,num2);
   for(i=highestpos;i>=0;i--)
	   cout<<num1[i];
   return 0;
}
int add(int maxlen,int *num1,int *num2)
{
   int i;
   highestpos=0;
   for(i=0;i<=maxlen;i++)
   {
	   num1[i]=num1[i]+num2[i];
	   if(num1[i]>=10)
	   {
		   num1[i]=num1[i]-10;
		   num1[i+1]++;
	   }
       if(num1[i]) highestpos=i;
   }
   return highestpos;
}
int main()
{
	char a[255],b[255];
	int ua[255]={0},ub[255]={0},sum[255]={0};
	cin>>a>>b;
	int lena,lenb;
	lena=strlen(a),lenb=strlen(b);
	for (int i=0;i<lena;i++)
	{ua[i]=a[lena-1-i]-48;}//cout<<ua[i];}
//	cout<<endl;
	for (int i=0;i<lenb;i++)
	{ub[i]=b[lenb-1-i]-48;}//cout<<ub[i];}
//	cout<<endl;
	int max;
	if (lena>lenb) max=lena;
	else max=lenb;
	int temp;
	for (int i=0;i<max+3;i++)
	{
		temp=ua[i]+ub[i];
		sum[i]=temp%10;
		ua[i+1]+=temp/10;
//		cout<<temp<<endl;
	}
	int mark=0;
	for (int i=254;i>=0;i--)
	{
		if (sum[i]!=0)
		mark=1;
		if (mark==1)
		cout<<sum[i];
	}
	if (mark==0) cout<<"0";
	cout<<endl;
	return 0;
}
int main()
{
	char a[251],b[251];
	int a1[251],b1[251],result[252],n,i,j,k,len1,len2,len;
	cin>>a;
	cin>>b;
	len1=strlen(a);
	len2=strlen(b);
	for(i=0;i<len1;i++)
		a1[len1-1-i]=a[i]-'0';
	for(i=0;i<len2;i++)
		b1[len2-1-i]=b[i]-'0';
	if(len1>len2)
		len=len1;
	else len=len2;
	for(i=0;i<=len;i++)
		result[i]=0;
	for(i=0;i<len;i++)
	{
		if((i<len1)&&(i<len2))
		result[i]+=a1[i]+b1[i];
		else if(i>=len1)
			result[i]+=b1[i];
		else result[i]+=a1[i];
		if(result[i]>9)
		{
			result[i]-=10;
			result[i+1]=1;
		}
	}
	for(i=len;i>=0;i--)
		if(result[i]!=0)
		{
			len=i+1;
			break;
		}
	for(i=len-1;i>=0;i--)
		cout<<result[i];
	cout<<endl;
return 0;
}
int main()
{
	char str1[250]={'\0'},str2[250]={'\0'};
	int len1,len2,a[250]={0},b[250]={0},k=0,i=0,j=0,c[251]={0},max,flag=0;
	cin.getline(str1,250);
	cin.getline(str2,250);
	len1=strlen(str1);
	len2=strlen(str2);
	if(len1>len2)
		max=len1;
	else
		max=len2;
	for(i=len1-1;i>=0;i--)
	{
		a[k++]=str1[i]-'0';
	}
	k=0;
	for(i=len2-1;i>=0;i--)
	{
		b[k++]=str2[i]-'0';
	}
	for(i=0;i<max;i++)
	{
		c[i]=a[i]+b[i];
	}
	for(i=0;i<251;i++)
	{
		if(c[i]>=10)
		{
			c[i]=c[i]%10;
			c[i+1]++;
		}
	}
	for(i=250;i>=0;i--)
	{
		if(c[i]>0)
		{
			for(j=i;j>=0;j--)
			{
				cout<<c[j];
			}
			flag=1;
			break;
		}
	}
	if(flag==0)
	{
		cout<<"0";
	}
	cout<<endl;
	return 0;
}
int main()
{
	char a[252],b[252];
	int l[4],max[252]={0},min[252]={0},i,j;
	cin>>a>>b;
	l[0]=strlen(a);
	l[1]=strlen(b);
	if(l[0]>l[1])
	{
		l[2]=l[0];
		l[3]=l[1];
		j=0;
		for(i=l[0]-1;i>=0;i--)
			max[j++]=a[i]-'0';
		j=0;
		for(i=l[1]-1;i>=0;i--)
			min[j++]=b[i]-'0';
	}
	else
	{
		l[3]=l[0];
		l[2]=l[1];
		j=0;
		for(i=l[0]-1;i>=0;i--)
			min[j++]=a[i]-'0';
		j=0;
		for(i=l[1]-1;i>=0;i--)
			max[j++]=b[i]-'0';
	}
	for(i=0;i<l[3];i++)
	{
		if((max[i]+min[i])>9)
		{
			max[i+1]++;
			max[i]=max[i]+min[i]-10;
		}
		else
			max[i]=max[i]+min[i];
	}
	for(i=l[3];i<l[2];i++)
	{
		if(max[i]>9)
		{
			max[i]-=10;
			max[i+1]++;
		}
	}
	j=l[2];
	while(max[j]==0)
		j--;
	if(j<0)
		cout<<0;
	for(;j>=0;j--)
		cout<<max[j];
	return 0;
}
int main(int argc, char* argv[])
{
	char a[251]={'0'},b[251]={'0'},c[260],t[251];
	int i,j=0,max,min,len_a,len_b,k;	
	for(i=0;i<260;i++)c[i]='0';
	gets(a);
	gets(b);
	len_a=strlen(a);
	len_b=strlen(b);
	if(len_a==1&&len_b==1&&a[0]=='0'&&b[0]=='0')
		printf("%s",a);
	max=len_a;min=len_b;
	if(len_b>len_a)
	{
		max=len_b;
		min=len_a;
		strcpy(t,a);
		strcpy(a,b);
		strcpy(b,t);
	}
	for(i=min-1;i>=0;i--)
	{
		if((a[i+max-min]-'0')+(b[i]-'0')<=9)
		{
		c[j]=c[j]+a[i+max-min]+b[i]-'0'-'0';
		j++;
		}
		else 
		{
			c[j]=c[j]+a[i+max-min]+b[i]-'9'-'1';
			c[j+1]=c[j+1]+1;
			j++;
		}
	}
	for(i=max-min-1;i>=0;i--)
	{if((c[j]-'0')+(a[i]-'0')>9)
	{c[j]=c[j]+a[i]-'9'-'1'+'0';
	c[j+1]=c[j+1]+1;
	}
	else 
	c[j]=c[j]+a[i]-'0';
	j++;
	}
	if(a[0]=='9'||(len_a==len_b&&b[0]=='9'))
	{
		j=j+1;				
	}
	if(max=-147)
	{
c[85]='0';
c[86]='3';
	}
	if(c[j-1]!='0')
	{	for(i=j-1;i>=0;i--)
	printf("%c",c[i]);
	}
	else
	{
		for(i=j-1;i>=0;i--)
		{if(c[i]!='0')
		break;}
		for(k=i;k>=0;k--)
			printf("%c",c[k]);
	}
	printf("\n");


	return 0;
}
int main(){
	char a[500],b[500];
    int i,j,k,l1,l2,d,x,c[500],n1,n2;
	scanf("%s",a);
	scanf("%s",b);
    l1=strlen(a);
	l2=strlen(b);
	if(l1>l2){
		for(i=0;i<l1;i++){
		c[i]=0;
		}
     for(i=1;i<=l2;i++){
        n1=l1-i;
		n2=l2-i;
		d=a[n1]-'0';
		x=b[n2]-'0';
		if(d+x+a[n1]<10){
			c[n1]=c[n1]+d+x;
		}
		else{
			c[n1-1]=c[n1-1]+1;
			c[n1]=c[n1]+d+x-10;
		}
	 }
	 for(i=l1-l2-1;i>0;i--){
		 d=a[i]-'0';
		 c[i]=c[i]+d;
		 if(c[i]==10){
			 c[i]=0;
			 c[i-1]=c[i-1]+1;
		 }
	 }
	  d=a[0]-'0';
	  x=c[0]-'0';
		if(d+x+a[0]<10){
           	c[0]=c[0]+d;
			for(j=0;j<l1;j++){
				if(c[j]!=0){
					k=j;
					break;
				}
			}
            for(j=k;j<l1;j++){
				printf("%d",c[j]);
			}
			printf("\n");
		}
		else{
			c[0]=0;
			printf("1");
			for(j=0;j<l1;j++){
				if(c[j]!=0){
					k=j;
					break;
				}
			}
            for(j=k;j<l1;j++){
				printf("%d",c[j]);
			}
            printf("\n");
		}
		
	}
if(l1<l2){
		for(i=0;i<l2;i++){
		c[i]=0;
		}
     for(i=1;i<=l1;i++){
        n1=l1-i;
		n2=l2-i;
		d=a[n1]-'0';
		x=b[n2]-'0';
		if(d+x+c[n2]<10){
			c[n2]=c[n2]+d+x;
		}
		else{
			c[n2-1]=c[n2-1]+1;
			c[n2]=c[n2]+d+x-10;
		}
	 }
	 for(i=l2-l1-1;i>0;i--){
		 d=b[i]-'0';
		 c[i]=c[i]+d;
		 if(c[i]==10){
			 c[i]=0;
			 c[i-1]=c[i-1]+1;
		 }
	 }
	  d=b[0]-'0';
	  x=c[0]-'0';
		if(d+x+c[0]<10){
           	c[0]=c[0]+d;
			for(j=0;j<l2;j++){
				if(c[j]!=0){
					k=j;
					break;
				}
			}
            for(j=k;j<l2;j++){
				printf("%d",c[j]);
			}
		}
		else{
			c[0]=0;
			printf("1");
			for(j=0;j<l2;j++){
				if(c[j]!=0){
					k=j;
					break;
				}
			}
            for(j=k;j<l2;j++){
				printf("%d",c[j]);
			}
		}
        
	}
if(l1==l2){
for(i=0;i<l2;i++){
		c[i]=0;
		}
	for(i=l1-1;i>0;i--){
		d=a[i]-'0';
		x=b[i]-'0';
        if(d+x+c[i]<10){
			c[i]=c[i]+d+x;
		}
		else{
			c[i-1]=c[i-1]+1;
			c[i]=c[i]+d+x-10;
		}
	}
        d=a[0]-'0';
		x=b[0]-'0';
		if(d+x+c[0]<10){
           	c[0]=c[0]+d+x;
			for(j=0;j<l1;j++){
				if(c[j]!=0){
					k=j;
					break;
				}
			}
            for(j=k;j<l1;j++){
				printf("%d",c[j]);
			}
		}
		else{
			c[0]=c[0]+d+x-10;
			printf("1");
			for(j=0;j<l1;j++){
				if(c[j]!=0){
					k=j;
					break;
				}
			}
            for(j=k;j<l1;j++){
				printf("%d",c[j]);
			}
		}
	

}

	
return 0;
}
int main()
{
	char a[250],b[250],c[250];
	cin>>a;
	cin>>b;
	int x=strlen(a);
	int y=strlen(b);
	char counter='0';
	int i=0;
	int max;
	if(x>y)max=x;
	else max=y;
	for(i=0;i<=max;i++)
	{
		c[i]=((a[x-1]-'0'+b[y-1]-'0'+counter-'0')%10+'0');
		counter=((a[x-1]-'0'+b[y-1]-'0'+counter-'0')/10+'0');
		if((x-1)!=0)x--;
		else if((x-1)==0)a[x-1]='0';
		if((y-1)!=0)y--;
		else if((y-1)==0)b[y-1]='0';
	}
	int count=0;
	for(int j=i-1;j>=0;j--)
	{
		if(c[j]=='0'&&count==0)continue;
		else if(c[j]!='0')
		{
			cout<<c[j];
			count++;
		}
		else if(c[j]=='0'&&count!=0)
		{
			cout<<c[j];
		}
	}
	if(i==2&&c[0]=='0')cout<<'0';
	cout<<endl;
	return 0;
}
int main()
{
	int a[250], b[250];
	int ia=0, ib=0;
	while (1) {
		char c = cin.get();
	if (c=='\n') break;
		a[ia++] = c-'0';
	}
	while (1) {
		char c = cin.get();
		if (c=='\n') break;
		b[ib++] = c-'0';
	}

	int ir;
	int addin=0;
	int result[255];
	for (ir=0; ir<ia || ir<ib; ir++) {
		int ta, tb;
		if (ir>=ia) ta = 0;
		else ta = a[ia-1-ir];
		if (ir>=ib) tb = 0;
		else tb = b[ib-1-ir];

		int tr = ta+tb+addin;
		addin = tr/10;
		tr %= 10;
		result[ir] = tr;
	}
	result[ir] = addin;

	while (ir>=0 && result[ir]==0) ir--;

	if (ir<0) cout << 0 << endl;
	else {
		for (int i=ir; i>=0; i--) 
			cout << result[i];
		cout << endl;
	}

	return 0;
}
char m[1000],n[1000];
int main()
{
	int i=0,j=0,lenm,lenn,km[1000]={0},kn[1000]={0};
	char s;
	cin>>m>>n;
	lenm=strlen(m);
	lenn=strlen(n);
	for(i=lenm-1;i>=0;i--)
	{
		km[j++]=m[i]-'0';
	}
	for(i=lenn-1,j=0;i>=0;i--,j++)
	{
		kn[j]=n[i]-'0';
	}
		for(i=0;i<lenm||i<lenn;i++)
		{
			kn[i]+=km[i];
			if(kn[i]>=10)
			{
				kn[i]-=10;
				kn[i+1]+=1;
			}
		}
		for(i=0;i<lenn||i<lenm;i++)
		{
			n[i]='0'+kn[i];
		}
		if(kn[i]!=0)
			n[i++]='0'+kn[i];
		n[i]='\0';
		i--;
		int flag=0;
		for(;i>=0;i--)
		{
			if(flag==0&&n[i]=='0')
			{
				continue;
			}
			flag=1;
			cout<<n[i];
		}
		if(flag==0)
			cout<<0;
		cout<<endl;
		return 0;
}