#include<bits/stdc++.h>
using namespace std;
const int N=1e4+7;
void jia(string s1,string s2){
int l1=s1.size(),l2=s2.size();
int a[N],b[N],c[N];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int la=0,lb=0;
for(int i=l1-1;i>=0;i--)a[++la]=s1[i]-'0';
for(int i=l2-1;i>=0;i--)b[++lb]=s2[i]-'0';
int len=max(la,lb);
for(int i=1;i<=len;i++){
c[i]+=a[i]+b[i];
c[i+1]+=c[i]/10;
c[i]%=10;
}
if(c[len+1]>0)len++;
while(c[len]==0&&len>1)len--;
for(int i=len;i>=1;i--)cout<<c[i];
cout<<endl;
}
void jian(string s1,string s2){
int l1=s1.size(),l2=s2.size(),la=0,lb=0;
int a[N],b[N],c[N];
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){
cout<<"-";
swap(s1,s2);
l1=s1.size(),l2=s2.size();
}
for(int i=l1-1;i>=0;i--)a[++la]=s1[i]-'0';
for(int i=l2-1;i>=0;i--)b[++lb]=s2[i]-'0';
int len=max(la,lb);
for(int i=1;i<=len;i++){
c[i]+=a[i]-b[i];
if(c[i]<0){
c[i]+=10;
a[i+1]--;
}
}
while(c[len]==0&&len>1)len--;
for(int i=len;i>=1;i--)cout<<c[i];
cout<<endl;
}
void cheng(string a1,string b1){
int a[10010],b[10010],c[20050],la,lb,lc,x=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
la=a1.size(),lb=b1.size();
for(int i=0;i<la;i++)a[la-i]=a1[i]-'0';
for(int i=0;i<lb;i++)b[lb-i]=b1[i]-'0';
for(int i=1;i<=la;i++){
x=0;
for(int j=1;j<=lb;j++){
c[i+j-1]=a[i]*b[j]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1]%=10;
}
c[i+lb]=x;
}
lc=la+lb;
while(c[lc]==0&&lc>1)lc--;
for(int i=lc;i>=1;i--)cout<<c[i];
cout<<endl;
}void sub(int x[],int y[]){
for(int i=1;i<=x[0];i++){
if(x[i]<y[i]){
x[i]=x[i]+10;
x[i-1]=x[i-1]-1;
}
x[i]=x[i]-y[i];
}
}
void cpy(int x[],int y[],int o){
for(int i=1;i<=x[0];i++){
y[i+o]=x[i];
}
y[0]=x[0]+o;
}
bool cmp(int x[],int y[]){
if(x[0]>y[0])return true;
if(x[0]<y[0])return false;
if(x[0]==y[0]){
for(int i=1;i<=x[0];i++){
if(x[i]>y[i])return true;
if(x[i]<y[i])return false;
}
}
return true;
}
void chu(string s1,string s2){
int a[10010]={0};
int b[10010]={0};
int c[10010]={0};
a[0]=s1.size();
b[0]=s2.size();
for(int i=1;i<=a[0];i++){
a[i]=s1[i-1]-'0';
}
for(int i=1;i<=b[0];i++){
b[i]=s2[i-1]-'0';
}
c[0]=a[0]-b[0]+1;
int t[20010]={0};
for(int i=1;i<=c[0];i++){
memset(t,0,sizeof(t));
cpy(b,t,i-1);
a[0]=b[0];
while(cmp(a,t)==true){
sub(a,t);
c[i]++;
}
}
while(c[0]>1&&c[c[0]]==0)c[0]--;
while(a[0]>1&&a[a[0]]==0)a[0]--;
for(int i=1;i<=c[0];i++){
cout<<c[i];
}
cout<<endl;
for(int i=1;i<=a[0];i++){
cout<<a[i];
}
}
int main(){
string s1,s2;
cin>>s1>>s2;
jia(s1,s2);
jian(s1,s2);
cheng(s1,s2);
chu(s1,s2);
return 0;
}
玄关