#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
inline bool compare(string a,string b)
{
int i;
for(i=0;a[i]=='0'&&i<a.size()-1;i++); a=a.substr(i,a.size()-i);
for(i=0;b[i]=='0'&&i<b.size()-1;i++); b=b.substr(i,b.size()-i);
if(a.size()==b.size()) return a>b;
return a.size()>b.size();
}
string add(string a,string b)
{
string c;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int carry=0,temp;
for(int i=0;i<a.size()||i<b.size();i++)
{
temp=carry;
if(i<a.size()) temp+=a[i]-'0';
if(i<b.size()) temp+=b[i]-'0';
c.push_back(char(temp%10+'0'));
carry=temp/10;
}
if(carry!=0) c.push_back(char('0'+carry));
reverse(c.begin(),c.end());
int i;
for(i=0;c[i]=='0'&&i<c.size()-1;i++);
c=c.substr(i,c.size()-i);
return c;
}
string sub(string a,string b)
{
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
string c;int carry=0;
for(int i=0;i<a.size()||i<b.size();i++)
{
int temp1=a[i]-'0'-carry,temp2=0;
if(i<b.size()) temp2=b[i]-'0';
carry=0;
if(temp1<temp2)
{
temp1+=10;
carry