#include<bits/stdc++.h>
using namespace std;
const int maxn=2000;
struct bign
{
int d[maxn],len;
void clean()
{
while(len>1&&!d[len-1])len--;
}
bign()
{
memset(d,0,sizeof(d));
len=1;
}
bign(int num)
{
*this=num;
}
bign(char *num)
{
*this=num;
}
bign operator = (const int num)
{
char s[maxn];
sprintf(s,"%d",num);
*this=s;
return *this;
}
bign operator = (const char *num)
{
len=strlen(num);
for(int i=0; i<len; i++)d[i]=num[len-1-i]-48;
clean();
return *this;
}
string str()const
{
string res;
for(int i=0; i<len; i++)res=char(d[i]+48)+res;
return res;
}
bign operator + (const bign& b)
{
bign c;
int i;
c=*this;
for(i=0; i<b.len; i++)
{
c.d[i]+=b.d[i];
if(c.d[i]>9)
{
c.d[i]-=10;
c.d[i+1]++;
}
}
while(c.d[i]>9)
{
c.d[i++]-=10;
c.d[i]++;
}
c.len=max(b.len,len);
if(c.d[i]&&c.len<=i)c.len=i+1;
return c;
}
bign operator - (const bign& b)
{
bign c;
int i;
c=*this;
for(i=0; i<b.len; i++)
{
c.d[i]-=b.d[i];
if(c.d[i]<0)
{
c.d[i]+=10;
c.d[i+1]--;
}
}
while(c.d[i]<0)
{
c.d[i++]+=10;
c.d[i]--;
}
c.clean();
return c;
}
bign operator * (const bign& b)const
{
int i,j;
bign c;
c.len=len+b.len;
for(i=0;i<len;i++)
{
for(j=0;j<b.len;j++)c.d[i+j]+=d[i]*b.d[j];
}
for(i=0;i<c.len-1;i++)
{
c.d[i+1]+=c.d[i]/10;
c.d[i]%=10;
}
c.clean();
return c;
}
bign operator / (const bign& b)
{
int i,j;
bign c=*this,a=0;
for(i=len-1;i>=0;i--)
{
a=a*10+d[i];
for(j=0;j<10;j++)
{
if(a<b*(j+1))break;
}
c.d[i]=j;
a=a-b*j;
}
c.clean();
return c;
}
bign operator % (const bign& b)
{
int i,j;
bign a=0;
for(i=len-1;i>=0;i--)
{
a=a*10+d[i];
for(j=0;j<10;j++)
{
if(a<b*(j+1))break;
}
a=a-b*j;
}
return a;
}
bool operator < (const bign& b)const
{
if(len!=b.len)return len<b.len;
for(int i=len-1;i>=0;i--)
{
if(d[i]!=b.d[i])return d[i]<b.d[i];
}
return false;
}
bool operator > (const bign& b)const{return b<*this;}
bool operator <= (const bign& b)const{return !(b<*this);}
bool operator >= (const bign& b)const{return !(*this<b);}
bool operator != (const bign& b)const{return b<*this||*this<b;}
bool operator == (const bign& b)const{return !(b<*this)&&!(*this<b);}
};
istream& operator >> (istream& in,bign& x)
{
string s;
in>>s;
x=s.c_str();
return in;
}
ostream& operator << (ostream& out,const bign& x)
{
out<<x.str();
return out;
}
int main()
{
bign a,b;
cin>>a>>b;
cout<<a<<"+"<<b<<"="<<a+b<<endl;
cout<<a<<"-"<<b<<"="<<a-b<<endl;
cout<<a<<"*"<<b<<"="<<a*b<<endl;
cout<<a<<"/"<<b<<"="<<a/b<<endl;
cout<<a<<"%"<<b<<"="<<a%b<<endl;
return 0;
}