semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void chengfa(char a[],char b[])
{
	char c[300]={'\0'},g;
	int na,nb,nc,i,j,t,d;
	na=strlen(a);
	nb=strlen(b);
	if(na==nb)
	{
		for(i=0,d=0;i<=na-1;i++)
		{ 
			 t=a[na-1-i]-48+b[nb-1-i]-48;
			 t=t+d;
			 c[i]=t%10+48;
			 d=(t-t%10)/10;
		}
		if(d!=0)
			 c[i]=d+48;
	}
	else if(na>nb)
	{
		for(i=0,d=0;i<=nb-1;i++)
		{ 
			 t=a[na-1-i]-48+b[nb-1-i]-48;
			 t=t+d;
			 c[i]=t%10+48;
			 d=(t-t%10)/10;
		}
		if(d!=0)
		{
			 for(i=nb;i<=na-1;i++)
			 { 
			      t=a[na-1-i]-48+d;
			      c[i]=t%10+48;
			      d=(t-t%10)/10;
			 }
			 if(d!=0)
				 c[i]=d+48;
		}
		else
		{
			for(i=nb;i<=na-1;i++)
			{
				c[i]=a[na-1-i];
			}
		}
	}
	else
	{
		for(i=0,d=0;i<=na-1;i++)
		{ 
			 t=a[na-1-i]-48+b[nb-1-i]-48;
			 t=t+d;
			 c[i]=t%10+48;
			 d=(t-t%10)/10;
		}
		if(d!=0)
		{
			 for(i=na;i<=nb-1;i++)
			 { 
			      t=b[nb-1-i]-48+d;
			      c[i]=t%10+48;
			      d=(t-t%10)/10;
			 }
			 if(d!=0)
				 c[i]=d+48;
		}
		else
		{
			for(i=na;i<=nb-1;i++)
			{
				c[i]=b[nb-1-i];
			}
		}
	}
	nc=strlen(c);
    while(c[nc-1]==48) 
	{
		c[nc-1]='\0';
		nc=strlen(c);
	}
	for(i=0;i<=(nc-1)/2;i++)
	{ 
		g=c[i];		 
		c[i]=c[nc-1-i];
		c[nc-1-i]=g;
	}
	if(nc==0)
		printf("0");
    else
	    printf("%s",c);
	return;
}

int main()
{
	char a[300],b[300];
	scanf("%s",a);
	scanf("%s",b);
	chengfa(a,b);
	return 0;
}
const int LEN=301;
int main()
{
	char ch1[LEN]={0},ch2[LEN]={0};
	int an1[LEN]={0},an2[LEN]={0};
	memset(an1,0,sizeof(an1));
	memset(an2,0,sizeof(an2));
	cin.getline(ch1,LEN,'\n');
	cin.getline(ch2,LEN,'\n');
	int i,j=0;
	for(i=strlen(ch1)-1;i>=0;i--)
		an1[j++]=ch1[i]-'0';
	j=0;
	for(i=strlen(ch2)-1;i>=0;i--)
		an2[j++]=ch2[i]-'0';
	for(i=0;i<LEN;i++)
	{
		an1[i]+=an2[i];
		if(an1[i]>=10)
		{
			an1[i]-=10;
			an2[i+1]+=1;
		}
	}
	int judge=0;
	for(i=LEN-1;i>=0;i--)
	{
		if(an1[i]!=0)
		{
			for(;i>=0;i--)
				cout<<an1[i];
			cout<<endl;
			judge=1;
			break;
		}
	}
	if(judge==0)
		cout<<"0"<<endl;
	
	return 0;
}
main()
{
   char a[250]={'0'},b[250]={'0'},c[1000],p;
   int i,j,k,x,y,m,n,q,max;
   scanf("%s",a);
   scanf("%s",b);
   m=strlen(a);
   n=strlen(b);
   
   if(a[0]=='0'&&b[0]=='0'&&m==1&&n==1)
  printf("0");
   else{
   if(m<n)
            {   k=n-m;
                for(i=m-1;i>=0;i--)
                {a[i+k]=a[i];
                }
                for(i=0;i<=k-1;i++)
                {a[i]='0';}
            }
       else  {k=m-n;
               for(i=n-1;i>=0;i--)
                    {b[i+k]=b[i];}
                    for(i=0;i<=k-1;i++)
                        {b[i]='0';}
               }
            
  if(m<=n)
  {m=n;}
  for(j=m-1;j>=1;j--)
   { p=a[j]+b[j]-'0';
        if(p>'9')
       {b[j-1]=b[j-1]+1;
     c[j]=p-10;}
     else c[j]=p;
     
   }
    p=a[0]-'0'+b[0];
    if(p>'9')
    {p='1';
    c[0]=a[0]+b[0]-'0'-10;}
    else{p='\0';
         c[0]=a[0]+b[0]-'0';}
    for(i=0,k=0;i<=m-1;i++){if(c[i]=='0') k=k+1;else break;}
    if(p=='1')
    {printf("%c",p);for(i=0;i<=m-1;i++) printf("%c",c[i]);}
    else{
    for(i=k;i<=m-1;i++)
    printf("%c",c[i]);}}
         }
int sdw1(char s1[],int a[])
{
    int len=strlen(s1);
    int i;
    for(i=0;i<len;i++)
    {
                      a[len-1-i]=s1[i]-'0';
    }
    return len;
}
int add(int a[],int b[],int c[],int la,int lb)
{
    int i;
    int len=(la>lb)?la:lb;
    for(i=0;i<len;i++)
    {
                  c[i]=a[i]+b[i];
    }
    for(i=0;i<len;i++)
    {
                      if(c[i]>=10)
                      {
                                  c[i+1]=c[i+1]+1;
                                  c[i]=c[i]%10;
                      }
    }
    return (c[len]!=0)?(len+1):len;
}
int main()
{
    char s1[300],s2[300];
    int a[300]={0};
    int b[300]={0};
    int c[300]={0};
    int i,la,lb,len,n=0;
    scanf("%s%s",s1,s2);
    la=sdw1(s1,a);
    lb=sdw1(s2,b);
    len=add(a,b,c,la,lb);
    for(i=len-1;i>0;i--)
    {
                        if(c[i]!=0)
                        {
                                   n=i;
                                   break;
                        }
    }
    for(i=n;i>-1;i--)
    {
                      printf("%d",c[i]);
    }
  
    return 0;
}
int main()
{
	char s1[max],s2[max];
	int a1[max],a2[max];
	int i,j;
	cin.getline(s1,max);
	cin.getline(s2,max);
	for(i=0;i<max;i++)
	{a1[i]=0;a2[i]=0;}
	int len1=strlen(s1);
	int len2=strlen(s2);
	for(i=0;i<len1;i++)
		a1[i]=s1[len1-1-i]-'0';
	for(i=0;i<len2;i++)
		a2[i]=s2[len2-1-i]-'0';
	for(i=0;i<max;i++)
	{
		a1[i]=a1[i]+a2[i];
		if(a1[i]>=10) {a1[i+1]++;a1[i]-=10;}
	}
	for(i=max-1;i>=0;i--)
	{if(a1[i]!=0) break;}
	if(i==-1) cout<<0<<endl;
	else{
	for(j=i;j>=0;j--) cout<<a1[j];
	}
	return 0;
}
int main(int argc, char* argv[])
{


	char a[500]={0},b[500]={0},sum[500]={0};

	int i,j;

	


	

	cin>>a>>b;

	int la=strlen(a),lb=strlen(b);


	for(i=0;i<la/2;i++)
	{
		char temp;
		temp=a[i];a[i]=a[la-1-i];a[la-i-1]=temp;
	}



	for(i=0;i<lb/2;i++)
	{
		char temp;
		temp=b[i];b[i]=b[lb-1-i];b[lb-i-1]=temp;
	}

	for(i=0;i<la;i++) a[i]-='0';
	for(i=0;i<lb;i++) b[i]-='0';

	int carry=0;
	for(i=0;i<500;i++)
	{
		int in=a[i]+b[i]+carry;
		sum[i]=in%10,carry=in/10;
	}

	for(i=499;i>0;i--) 
	{
		if(sum[i]!=0) 
		{break;}
	}

	for(;i>=0;i--)
	{
		printf("%c",sum[i]+'0');
	}






	return 0;
}
int length(char* v);
void diandao(char* v,int i);
int main()
{
	int x=0;
	char a[250],b[250],c[250];
	cin.getline(a,250);
	cin.getline(b,250);
	diandao(a,length(a));
	diandao(b,length(b));
	x=length(a);
	if(x<length(b))x=length(b);
	for(int i=0;i<x;i++)
		c[i]='0';
	for(int i=0;i<x;i++)
	{
		if(a[i]<'0'||a[i]>'9') a[i]='0';
		if(b[i]<'0'||b[i]>'9') b[i]='0';
		if(a[i]-'0'+b[i]-'0'+c[i]-'0'<=9)	c[i]+= -'0'+a[i]-'0'+b[i];
		else	{c[i]=c[i]-'0'+a[i]-'0'+b[i]-10; c[i+1]='1';}
	}
	diandao(c,length(c));
	int k=0;
	for(int i=0;i<length(c);i++)
	{	if(c[i]!='0'){k=i;break;}}
	for(int i=k;i<length(c);i++)
		cout<<c[i];
	return 0;
}
int length(char* v)
{
	int x;
	for(int i=1;v[i-1]>='0'&&v[i-1]<='9';i++)
		x=i;
	return x;
}
void diandao(char* v,int i)
{
	for(int j=0;j<i/2;j++)
		swap(v[j],v[i-j-1]);
}
int main()  
{  
	int na[MAX_LEN+10];  
	int nb[MAX_LEN+10];  
	char a[MAX_LEN+10];  
	char b[MAX_LEN+10]; 
    scanf("%s", a);  
    scanf("%s", b);  
    int i, j;  
    memset( na, 0, sizeof(na));         
    memset( nb, 0, sizeof(nb));    
    
	int n1 = strlen(a);  
    j = 0;  
    for( i=n1-1;i>=0;i--)  
        na[j++] = a[i] - '0';      
  
    int n2 = strlen(b);  
    j = 0;  
    for( i=n2-1;i>=0;i--)  
        nb[j++] = b[i] - '0';      
  
     for(i=0;i<MAX_LEN;i++)   
     {   
         na[i] += nb[i];             
         if(na[i]>=10)    
         {          
                na[i] -= 10;  
                na[i+1] ++;                   
         }  
     }
     int flag = 0;   
     for( i = MAX_LEN; i >= 0; i-- )   
     {  
         if( flag==1)      
             printf("%d", na[i]);     
          else if( na[i] ) {             
               printf("%d", na[i]);  
               flag = 1;                  
          }  
     }  
     if(flag!=1)      
          printf("0");  
     return 0;  
}
// 10000.cpp : ??????????????
//

//#include<StdAfx.h>
struct node
{
    char data;
    struct node *next;
};
int l[2]={0,0},k=0,n;
typedef struct node Node;
Node *create()
{
    Node *p1,*p2,*head;
    head=null;
    p1=(Node *)malloc(len);
    p2=(Node *)malloc(len);
    scanf("%c",&p1->data);
    head=null;
    while(p1->data!='\n')
    {
        l[k]++;
        if (l[k]==1)
        head=p1;
        else
        p2->next=p1;
        p2=p1;
        p1=(Node *)malloc(len);
        scanf("%c",&p1->data);
    }
    k++;
    p2->next=null;
    return (head);
}
Node *add(Node *s1,Node *s2)
{
    Node *p1,*p2,*ans,*p,*pp;
    ans=null;
    p1=s1;
    p2=s2;
    int i,j,a,b,c=0,d;
    n=l[0]>l[1]?l[0]:l[1];
	p=(Node *)malloc(len);
    for(i=0;i<n;i++)
    {
        for (j=0;j<l[0]-i-1;j++)
        p1=p1->next;
        for (j=0;j<l[1]-i-1;j++)
        p2=p2->next;
        a=i>=l[0]?0:p1->data-'0';
        b=i>=l[1]?0:p2->data-'0';
        d=(a+b+c)%10;
        c=(a+b+c)/10;
        p->data=d+'0';
        if (i==0)
        ans=p;
        else
        pp->next=p;
        pp=p;
        p=(Node *)malloc(len);
        p1=s1;
        p2=s2;
    }
    if (c==1)
    {
         p->data='1';
         pp->next=p;
         pp=p;
         n++;
    }
    pp->next=null;
    return (ans);
}
void put(Node *head)
{
    Node *p;
    p=head;
    int i,flag=0;
    for (;n!=0;)
    {
        for (i=0;i<n-1;i++)
        p=p->next;
        if (flag==0&&p->data=='0')
        {
             p=head;
             n--;
            continue;
        }
        //if (flag==1)
       // {
            printf ("%c",p->data);
            flag=1;
        //}

        p=head;
        n--;
    }
    if (flag==0)
    printf("0");
}
 main()
{
    Node *s1,*s2,*ans;
    s1=create();
    s2=create();
    ans=add(s1,s2);
    put(ans);
}
/*
 * 3.cpp
 *
 *  Created on: 2013-11-22
 *      Author: Administrator
 */

/*#include<iostream>
void change(char a[300])//??????????
{
	int q;
	for(int i=0;i<strlen(a)/2;i++)
	{
		if(strlen(a)-i-1==i)break;
		else{
			q=a[i];
		a[i]=a[strlen(a)-i-1];
		a[strlen(a)-i-1]=q;
		}
	}
}
int max1(char c[300],char b[300])//????????
{
	if(strlen(c)>strlen(b))return strlen(c);
	else return strlen(b);
}

int add(char c[300],char d[300],int x,char s[300])//???????????
{
	if(c[x]-'0'+d[x]-'0'<10)
	{
		s[x]=c[x]-'0'+d[x]-'0';
		if(x==max1(c,d)-1)return 0; //??????????
	}
	else
	{
		s[x]=c[x]-'0'+d[x]-'0'-10;//????????
		c[x+1]++;
		if(x==max1(c,d))return 0;
	}
	return add(c,d,x+1,s);
}
void happy(int s[300])
{
	for(int i=0;i<300;i++)
	{
		s[i]='0';
	}
}
int main()
{
	char a[300]={'0'};
	char b[300]={'0'};
	char c[300]={'0'};
	happy(a);
	happy(b);
	happy(c);
	cin>>a>>b;
	change(a);
	change(b);
	add(a,b,0,c);
	if(c[max1(a,b)]!='0')cout<<'1';//??????
	for(int i=max1(a,b)-1;i>=0;i--)//?c????
		{
			cout<<char(c[i]+'0');
		}
}*/
/*#include<iostream>
int lenA,lenB,maxlen;
void change(char a[300],int len)
{
	char q;
	for(int i=0;i<len/2;i++)
	{
		if(len-i-1==i)break;
		else{
			q=a[i];
			a[i]=a[len-i-1];
			a[len-i-1]=q;
		}
	}

}
int add(char c[300],char d[300],int x,char s[300])
{
	if(c[x]-'0'+d[x]-'0'<10)
	{
		s[x]=c[x]+d[x]-'0';
		if(x>maxlen)return 0;

	}
	else{
		s[x]=c[x]-'0'+d[x]-10;
		c[x+1]++;
		if(x>=maxlen-1)
		{
			s[x+1]++;
		maxlen++;
		return 0;
		}
	}
	return add(c,d,x+1,s);
}
void happy(char s[300])
{
	for(int i=0;i<300;i++)
	{
		s[i]='0';
	}
}
int main()
{
	char a[300]={'0'};
	char b[300]={'0'};
	char c[300]={'0'};

happy(a);
happy(b);
happy(c);
cin>>a>>b;
lenA=strlen(a);
lenB=strlen(b);
maxlen=lenA>lenB?lenA:lenB;
cout<<maxlen<<endl;
a[lenA]=b[lenB]='0';
change(a,lenA);
change(b,lenB);
add(a,b,0,c);
for(int i=maxlen-1;i>=0;i--)
{
	cout<<c[i];
}
 return 0;
}
?????*/

int lenA, lenB, maxLen;
void change(char a[300], int len)//??????????
{
	int q;
	for(int i=0;i<len/2;i++)
	{
		if(len-i-1==i)break;
		else{
			q=a[i];
		a[i]=a[len-i-1];
		a[len-i-1]=q;

		}
	}
}

int add(char c[300],char d[300],int x,char s[300])//???????????
{
	if(c[x]-'0'+d[x]-'0'<10)
	{
		s[x]=c[x]-'0'+d[x];
		if(x>=maxLen-1)return 0; //??????????
	}
	else
	{
		s[x]=c[x]-'0'+d[x]-10;//????????
		c[x+1]++;
		if(x>=maxLen-1)
		{
			s[x+1]++;
			maxLen++;
			return 0;
		}
	}
	return add(c,d,x+1,s);
}
int main()
{
	char a[300];
	char b[300];
	char c[300];
	int i, j;
	for (i = 0; i < 300; i++)
		a[i] = b[i] = c[i] = '0';
	cin>>a>>b;
	for (i = 0; a[i] != '\0' && a[i] == '0'; i++);
	lenA = strlen(a);
	for (j = 0; j < lenA - i; j++)
		a[j] = a[j + i];
	lenA -= i;
	for (i = 0; b[i] != '\0' && b[i] == '0'; i++);
	lenB = strlen(b);
	for (j = 0; j < lenB - i; j++)
		b[j] = b[j + i];
	lenB -= i;
	if (lenA == 0 && lenB == 0)
		cout << '0';
	else if (lenA == 0)
		cout << b;
	else if (lenB == 0)
		cout << a;
	else
	{
		maxLen = lenA > lenB ? lenA : lenB;
		a[lenA] = b[lenB] = '0';
		change(a, lenA);
		change(b, lenB);
		add(a,b,0,c);
		for(i=maxLen-1;i>=0;i--)//?c????
			{
				//if (i != 0)
				//	continue;
				cout<<c[i];
			}
	}
}
int main()
{
	char a[251],b[251];
	int p[251]={0},q[251]={0},ans[251]={0},t;
	gets(a);
	gets(b);
	int len1=strlen(a);
	int len2=strlen(b);
	int max=len1;
	if(len2>len1)
		max=len2;
	for(int i=0,j=len1-1;i<len1;i++,j--)
		p[i]=a[j]-'0';
	for(int i=0,j=len2-1;i<len2;i++,j--)
		q[i]=b[j]-'0';
	for(int i=0;i<max;i++)
		ans[i]=p[i]+q[i];
	for(int i=0;i<max;i++)
		if(ans[i]>=10)
		{
			ans[i]=ans[i]-10;
			ans[i+1]=ans[i+1]+1;
		}
	for(t=max;t>=0;t--)
		if(ans[t]!=0)
			break;
	if(t==-1)
		cout<<0<<endl;
	else for(int i=t;i>=0;i--)
		cout<<ans[i];
	cout<<endl;
	return 0;
}
int max(int a,int b)
{
	if (a>b) return a;else return b;
}
int main()
{
	char a[250],b[250];
	int aa[252]={0},bb[252]={0},cc[252]={0};
	int i,k=0,n,m;
	cin>>a>>b;
	aa[0]=strlen(a);
	for (i=1;i<=aa[0];i++) aa[i]=a[aa[0]-i]-48;
	bb[0]=strlen(b);
	for (i=1;i<=bb[0];i++) bb[i]=b[bb[0]-i]-48;
	for (i=1;i<=max(aa[0],bb[0])+1;i++)
	{
		cc[i]=((aa[i]+bb[i])+k)%10;
		k=(aa[i]+bb[i]+k)/10;
	}
	for (i=251;i>=1;i--) if (cc[i]!=0) 
	{
		cc[0]=i;break;
	}
	if (i==0) cout<<0<<endl;
	else 
	{
		for (i=cc[0];i>0;i--) cout<<cc[i];
		cout<<endl;
	}
	return 0;
}
int main(int argc, char* argv[])
{
	char a[251],b[251];
	int c[254],i,l1,l2,m,n,l;
	scanf("%s%s",a,b);
	l=0;
	memset(c,0,sizeof(c));
    l1=(int)strlen(a);
	l2=(int)strlen(b);
	while(l1>0||l2>0)
	{
		m=(l1>0)?a[--l1]-'0':0;
		n=(l2>0)?b[--l2]-'0':0;
		c[l]+=m+n;
		c[l+1]=c[l]/10;
		c[l]%=10;
		l++;
	}
	while(c[l]==0&&l>0)
		l--;
	for(i=l;i>=0;i--)
		printf("%d",c[i]);
	printf("\n");
	return 0;
}
void xiaoling(char str[])
{
	int len=strlen(str);
	if(str[0]=='0')
	{
		int i;
		for(i=0;str[i]=='0';i++)
		{
		}
		int j;
		for(j=i;j<=len+1;j++)
		{
			str[j-i]=str[j];
		}
	}
}
int main()
{ 
	char str1[10000]={' '},str2[10000]={' '};
	int len1,len2,len,a[10000]={0},b[10000]={0};
	cin>>str1;
	cin>>str2;
	if(str1[0]=='0'&&str1[1]=='\0'&&str2[0]=='0'&&str2[1]=='\0')
	{
		cout<<0;
		return 0;
	}
	xiaoling(str1);
	xiaoling(str2);
	len1=strlen(str1);  //????len1-1
	len2=strlen(str2);
	int i,j=0;
	for(i=len1-1;i>=0;i--)
	{
		a[j]=str1[i]-'0';
		j++;
	}
	j=0;
	for(i=len2-1;i>=0;i--)
	{
		b[j]=str2[i]-'0';
		j++;
	}
	if(len1>len2)
		len=len1;
	else
		len=len2;
	for(i=0;i<len;i++)
	{
		a[i]=a[i]+b[i];
		if(a[i]>=10)
		{
			a[i]-=10;
			a[i+1]++;
		}
	}
	for(i=len;i>=0;i--)
	{
		if(a[i]!=0)
			break;
	}
	for(j=i;j>=0;j--)
		cout<<a[j];


	return 0;

}
int main()
{
	char str1[252],str2[252];
	cin.getline(str1,252);
	cin.getline(str2,252);
	unsigned int a[251],b[251];
    int len1=strlen(str1);int len2=strlen(str2);
	int i,j=0;
	memset(a,0,sizeof(a));memset(b,0,sizeof(b));
	for (i=len1-1;i>=0;i--)
		a[j++]=str1[i]-'0';
	j=0;
	for(i=len2-1;i>=0;i--)
		b[j++]=str2[i]-'0';
	if(strcmp(str1,"0")!=0&&strcmp(str2,"0")!=0)
	{
	for (i=0;i<=250;i++)
	{
		a[i]=a[i]+b[i];
        if(a[i]>=10)
		{
			a[i]=a[i]-10;
			a[i+1]++;
		}
	}
	for(i=250;i>=0;i--)
	{
		if (a[i]!=0)
			break;
	}
	for(;i>=0;i--)
		cout<<a[i];
	cout<<endl;
	}
	else cout<<0;
	
	return 0;
}
int main()
{
	char a[300];
	char b[300];
	int c[300];
	int j=299;
	for(int i=0;i<=299;i++)
	{
		a[i]=0;
		b[i]=0;
		c[i]=0;
	}
	cin>>a>>b;
	int lena,lenb;
	for(int i=0;i<300;i++)
	{
		if (a[i]==0)
		{lena=i-1;
		break;}
	}
	for(int i=0;i<300;i++)
	{
		if (b[i]==0)
		{lenb=i-1;
		break;}
	}
	for(int i=0;i<=lena;i++)
	{
		a[i]=a[i]-('1'-1);

	}
	for(int i=0;i<=lenb;i++)
	{
		b[i]=b[i]-('1'-1);
	}
	if (lena==lenb)
	{
		for(int i=lenb;i>=0;i--)
				{
					c[i+1]+=b[i]+a[i];
					if(c[i+1]>=10)
					{
						c[i]++;
						c[i+1]-=10;
					}
				}
		if (c[0]==1)
		{
			cout<<'1';
		for(int i=1;i<=lena+1;i++)
			cout<<c[i];
		}
		else
		{
			for(int i=1;i<=lena+1;i++)
				if(c[i]!=0)
				{
					j=i;
					break;
				}
			if(j==299)
			{
				cout<<0;
				return 0;
			}
			for(int i=j;i<=lena+1;i++)
				cout<<c[i];
		}
	}
	if (lena<lenb)
	{
		for(int i=lenb;i>=lenb-lena;i--)
			a[i]=a[i-lenb+lena];
		for(int i=0;i<lenb-lena;i++)
			a[i]=0;
		for(int i=lenb;i>=0;i--)
		{
			c[i+1]+=b[i]+a[i];
			if(c[i+1]>=10)
			{
				c[i]++;
				c[i+1]-=10;
			}
		}
		if (c[0]==1)
		{
			cout<<'1';
		for(int i=1;i<=lenb+1;i++)
			cout<<c[i];
		}
		else
		{
			for(int i=1;i<=lenb+1;i++)
				if(c[i]!=0)
				{
					j=i;
					break;
				}
			if(j==299)
			{
				cout<<0;
				return 0;
			}
			for(int i=j;i<=lenb+1;i++)
				cout<<c[i];
		}
		return 0;
	}
	if (lena>lenb)
	{
		for(int i=lena;i>=lena-lenb;i--)
			b[i]=b[i-lena+lenb];
		for(int i=0;i<lena-lenb;i++)
			b[i]=0;
		for(int i=lena;i>=0;i--)
		{
			c[i+1]+=b[i]+a[i];
			if(c[i+1]>=10)
			{
				c[i]++;
				c[i+1]-=10;
			}
		}
		if (c[0]==1)
		{
			cout<<'1';
		for(int i=1;i<=lena+1;i++)
			cout<<c[i];
		}
		else
		{
			for(int i=1;i<=lena+1;i++)
				if(c[i]!=0)
				{
					j=i;
					break;
				}
			if(j==299)
			{
				cout<<0;
				return 0;
			}
			for(int i=j;i<=lena+1;i++)
				cout<<c[i];
		}
	}
	return 0;
}
void main()
{
	char a[251],b[251],c[251];
	scanf("%s",a);
	scanf("%s",b);
	int i,j,m,n,t,x=0;
	int y=0;
	m=strlen(a);
	n=strlen(b);
	if(n>m)
	{
		strcpy(c,b);
		strcpy(b,a);
		strcpy(a,c);
		t=n;
		n=m;
		m=t;
	}
	for(i=m-1,j=n-1;j>=0;i--,j--)
	{
		a[i]=a[i]-48+b[j];
		if(a[i]>57)
		{
			if(i!=0)
			{
				a[i]=a[i]-10;
				a[i-1]=a[i-1]+1;
			}
			else
			{
				a[i]=a[i]-10;
				printf("1");
				x=1;
			}
			
		}
	}
	for(i=m-1;i>=0;i--)
	{
		if(a[i]>57)
		{
			if(i!=0)
			{
				a[i]=a[i]-10;
				a[i-1]=a[i-1]+1;
			}
			else
			{
				a[i]=a[i]-10;
				printf("1");
				x=1;
			}
			
		}
		
	}
	if(x==1)
	{
		printf("%s",a);
	}
	
	else
	{	for(i=0;i<m;i++)
		{
			y++;
			if(a[i]!='0')
			{
				break;
			}
		}
		for(i=y-1;i<m;i++)
		{
			printf("%c",a[i]);
		}

	}
	
}
void main()
{
	char a[260],b[260],c[260];
	int la,lb,t,i,x=0,l,j,flag=0;
	gets(a);
	gets(b);
	la=strlen(a);
	lb=strlen(b);
	l=(la>=lb)?la:lb;
	for(i=0;i<=l;i++)
	{
		if(lb-1-i<0)
			b[lb-1-i]='0';
		if(la-1-i<0)
			a[la-1-i]='0';
        t=a[la-1-i]+b[lb-1-i]+x-96;
		if(t<=9)
		{
			c[i]=t;
			x=0;
		}
		else
		{
		    t=t-10;
			c[i]=t;
			x=1;
		}
	}
	for(j=l;j>0;j--)
    {
    if(c[j]==0 && flag==0)
       continue;
    else
      {flag=1;
		  printf("%d",c[j]);}}
	printf("%d",c[0]);
}
int main()
{
	int i,j;
	char num1[N],num2[N],tmp;
	int len1,len2,len_max,len_min;
	int result[N+1]={0};
	scanf("%s%s",num1,num2);
	len1=strlen(num1);
	len2=strlen(num2);
	len_max=len1>len2?len1:len2;
	len_min=len1<len2?len1:len2;
	for(j=0;j<len1/2;j++)
	{
		tmp=num1[j];
		num1[j]=num1[len1-1-j];
		num1[len1-1-j]=tmp;
	}
	for(j=0;j<len2/2;j++)
	{
		tmp=num2[j];
		num2[j]=num2[len2-1-j];
		num2[len2-1-j]=tmp;
	}
	for(j=0;j<len_min;j++)
	{
		result[j]+=num1[j]+num2[j]-'0'-'0';
		if(result[j]>=10)
		{
			result[j+1]+=1;
			result[j]=result[j]%10;
		}
	}
	for(j=len_min;j<len_max;j++)
	{
		if(len_max==len1)
		{
			result[j]+=num1[j]-'0';
			if(result[j]>=10)
			{
				result[j+1]+=1;
				result[j]=result[j]%10;
			}
		}
		else
		{
			result[j]+=num2[j]-'0';
			if(result[j]>=10)
			{
				result[j+1]+=1;
				result[j]=result[j]%10;
			}
		}
	}
	if(result[len_max]==1)
		len_max++;
	for(i=len_max-1;i>=0;i--)
	{
		if(result[i]!=0)
			break;
	}
	if(i>=0)
	{
		for(j=i;j>=0;j--)
			printf("%d",result[j]);
		printf("\n");
	}
	else
		printf("0\n");
	return 0;
}
int main()
{
	int i,j=0,changdu1,changdu2,js=0;
	char a[501],b[501];
	scanf("%s%s",a,b);
	changdu1=strlen(a);
	changdu2=strlen(b);
	for(i=250;i<500;i++)
	{
		a[i]=48;
		b[i]=48;
	}
	for(i=0;i<changdu1;i++)
	{
		a[500-changdu1+i]=a[i];
	}
	for(i=0;i<changdu2;i++)
	{
		b[500-changdu2+i]=b[i];
	}  

	for(i=500;i>249;i--)
	{

		b[i]+=a[i]-48;
		if(b[i]>57&&b[i]<67)
		{
			b[i-1]++;
			b[i]=b[i]-10;
		}
		
	}
	for(i=250;i<500;i++)
	{
		if(j!=0||(b[i]>=49&&b[i]<=57))
		{
			printf("%c",b[i]);
			j=1;
			js++;
		}
	}
	if(js==0)
		printf("0");
	printf("\n");

	return 0;
}
int main()
{
    char a[251], b[251], c[252];
    int i, j, k, tmp = 0;
    scanf("%s%s", a, b);
    k = -1;
    for(i = strlen(a) - 1, j = strlen(b) - 1; i+1 && j+1; i--, j--){
        k++;
        c[k] = tmp+a[i]-'0'+b[j]-'0';
        tmp = c[k]/10;
        c[k] %= 10;
    }
    if(i >= 0){
         while(i >= 0){
             k++;
             c[k] = tmp + a[i]-'0';
             tmp = c[k]/10;
             c[k] %= 10; 
             i--;
         }
     }
     else if(j >= 0){
         while(j >= 0){
             k++;
             c[k] = tmp + b[j]-'0';
             tmp = c[k]/10;
             c[k] %= 10;
             j--;
         }
     }
     if(tmp)c[++k] = tmp;
     while(k >= 0 && c[k] == 0)k--;
     for(i = k; i >= 0; i--)printf("%d", c[i]);
     if(k < 0)printf("0");
     return 0;
}
int main()
{
char s1[250];
char s2[250];
scanf("%s",s1);
scanf("%s",s2) ; 
int l1 ,l2 ;
l1=strlen(s1);
l2=strlen(s2) ;
 
int t,i,p[251]={0};
for (i=0;i<250;i++)
{
if(i<l1&&i<l2)
t=s1[l1-i-1]+s2[l2-i-1]-'0'-'0'; 
else if(i>=l1&&i<l2)
t=s2[l2-i-1]-'0';
else if(i>=l2&&i<l1)
t=s1[l1-i-1]-'0';
else if(i>=l1&&i>=l2)
 break;
p[i]=p[i]+t;
if(p[i]>9)
{
p[i]=p[i]-10;
p[i+1]++;
}   
}  
while(p[i]==0&&i>0)
i--;
for (;i>=0;i--)
{
printf("%d",p[i]);    
    
    
    
}    
    
    
}
int main()
{
	char m[250];
	char n[250];
	char x[250];
	char total[255];
	int sl1=0,sl2=0,i,j,a,tmp=0,head=0;
	gets(m);
	gets(n);
	strcpy(x,m);
	for(i=0;m[i]!=0&&(m[i]>='0'&&m[i]<='9');i++)
	{
		sl1++;
	}
	for(i=0;n[i]!=0&&(n[i]>='0'&&n[i]<='9');i++)
	{
		sl2++;
	}
	if(sl1<sl2)
	{
		strcpy(m,n);
		strcpy(n,x);
		a=sl1;
		sl1=sl2;
		sl2=a;
	}
	for(j=0;j<=sl2;j++)
	{
		n[sl1-j]=n[sl2-j];
	}
	for(j=sl2+1;j<=sl1;j++)
	{
		n[sl1-j]='0';
	}
	for(i=sl1-1;i>=0;i--)
	{
		if(m[i]-'0'+n[i]-'0'+tmp>9)
		{
			total[i]='0'+(m[i]-'0'+n[i]-'0'+tmp)%10;
			tmp=1;
		}
		else
		{
			total[i]=m[i]+n[i]+tmp-'0';
			tmp=0;
		}
	}
	if(tmp==1)
	{
		printf("1");
		head=1;
	}
	for(j=0;j<sl1;j++)
	{
		if(total[j]=='0'&&head==0&&j!=sl1-1)
		{
			head=0;
			continue;
		}
		head=1;
		printf("%c",total[j]);
	}
	printf("\n");
	return 0;
}
int main()
{
    char str1[250],str2[250],str3[251];
  int X,i,X1,X2,a[250]={0},b[250]={0},c[250]={0};
 scanf("%s\n%s",str1,str2);
 X1=strlen(str1);
 X2=strlen(str2);
 X=X1;
 if (X2>X)
 X=X2;
 for (i=0;i<X1;i++)
 a[X1-1-i]=str1[i]-'0';
 for (i=0;i<X2;i++)
 b[X2-1-i]=str2[i]-'0';
    for (i=0;i<=X;i++)
     {
                                  c[i]=a[i]+b[i];
                                  c[i]=c[i]%10;
                               if (i!=0)
                              { 
                               if ((a[i-1]+b[i-1]==9)&&(c[i-1]==0))
                                c[i]=c[i]+1;
                                  c[i]=c[i]%10;
                               if ((a[i-1]+b[i-1])>=10)
                                c[i]=c[i]+1;
                                  c[i]=c[i]%10;
                              }   
                     
     }
     if (c[X]==0)
     {
        for (i=0;i<X;i++)
     {str3[X-1-i]=c[i]+'0';} 
     
     str3[X]='\0';    
     for (;;)
     {
         if (str3[1]=='\0')
         break;
         if (str3[0]!='0')
         break;
         if (str3[0]=='0')
         for (i=0;i<X;i++)
         {str3[i]=str3[i+1];}
      
      }                 
     printf("%s",str3);
     }
     if (c[X]==1)
     {
        for (i=0;i<=X;i++)
     {str3[X-i]=c[i]+'0'; }                  
         str3[X+1]='\0'; 
           for (;;)
     {
           if (str3[1]=='\0')
             break;
         if (str3[0]!='0')
             break;
         if (str3[0]=='0')
           for (i=0;i<X;i++)
      
           {str3[i]=str3[i+1];}
      
      }                                   
     printf("%s",str3);
     }          
}
int main()
{
	int i;
	int a[1001]={0},b[1001]={0};
	char s1[1001];
	char s2[1001];
	gets(s1);
	gets(s2);
	for(i=0;i<strlen(s1);i++)
	a[i]=s1[strlen(s1)-i-1]-'0';
	for(i=0;i<strlen(s2);i++)
	b[i]=s2[strlen(s2)-i-1]-'0';
	for(i=0;i<=999;i++)
	{
		a[i]+=b[i];
		a[i+1]+=a[i]/10;
		a[i]%=10;
	}
	i=1000;
	while(i>=0&&a[i]==0)i--;
	if(i==-1)
	cout<<"0";
	else
	while(i>=0)
	{cout<<a[i];i--;}
	return 0;
}
int main()
{
	char a[250],b[250];
	int l1,l2,l=0,m,n,c[250]={0},i;
	scanf("%s%s",a,b);
	l1=strlen(a);
	l2=strlen(b);
	while(l1>0||l2>0)
	{	
		if(l1>0) 
			m=a[l1-1]-'0';
		else m=0;
		l1--;
		if(l2>0) 
			n=b[l2-1]-'0';
		else n=0;
		l2--;	
		c[l]+=(m+n);
		c[l+1]=c[l]/10;
		c[l]=c[l]%10;
		l++;
	}
	while(c[l]==0&&l>0)
		l--;
	for(i=l;i>=0;i--)
		printf("%d",c[i]);
}