#include<iostream.h>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#define MAX 300
void add(int a[MAX],int b[MAX]);
void sub(int a[MAX],int b[MAX]);
void Mul(int a[MAX],int b[MAX]);
void Div(int a[MAX],int b[MAX]);
void jia(int a[MAX],int b[MAX]);
void jian(int a[MAX],int b[MAX]);
void cheng(int a[MAX],int b[MAX],int lenx,int len2y);
int chu(int a[MAX],int b[MAX]);
int Cmp(int a[MAX],int b[MAX]);
void cout1();
int StringToDaShu(char *s);
char c1[MAX],c2[MAX],fuhao1,fuhao2;
int s1[MAX],s2[MAX],c[MAX],result[MAX];
int num[MAX],len,len1,len2,i,j;
int cm[MAX];
static int sign;
int si,add1=0,jianqu=0,chengyi=0;
int sa=0,sb=0;
static int fuhao31=0,fuhao32=0,fuhao33=0,fuhao34=0;
void main()
{
int f1,f2;
scanf("%s %s",c1,c2);
//cout<<"2"<<endl;
f1=StringToDaShu(c1);
for(i=0;i<MAX;i++)s1[i]=num[i];
//cout1();
if(f1==1)fuhao1='+';
if(f1==-1)fuhao1='-';
//cout<<fuhao1<<endl;
len1=len;
f2=StringToDaShu(c2);
for(i=0;i<MAX;i++)s2[i]=num[i];
//cout1();
if(f2==1)fuhao2='+';
if(f2==-1)fuhao2='-';
//cout<<fuhao2<<endl;
len2=len;
//add(s1,s2);
//sub(s1,s2);
//Mul(s1,s2);
Div(s1,s2);
//cout<<endl;
getch();
}
int StringToDaShu(char *s)
{
for (int i=0;i<MAX;i++)num[i]=0;
sign=0;
len=strlen(s);
switch(s[0]) {
case '-':
{
for(i=MAX-1,j=len-1;i>MAX-len;i--,j--)
num[i]=s[j]-'0';
return -1;
sign=-1;
break;
}
case '+':
{
for(i=MAX-1,j=len-1;i>MAX-len;i--,j--)
num[i]=s[j]-'0';
return 1;
sign=1;
break;
}
default:
{
for(i=MAX-1,j=len-1;i>MAX-len-1;i--,j--)
num[i]=s[j]-'0';
return 1;
sign=1;
break;
}
}
}
int Cmp(int a[MAX],int b[MAX])
{
int cmp=0;
for (i=0;i<MAX;i++)
{
if(a[i]>b[i]){cmp=1;break;}
if(a[i]<b[i]){cmp=-1;break;}
if(a[i]==b[i])continue;
}
return cmp;
}
void add(int a[MAX],int b[MAX])
{
add1=1;
if((fuhao2=='+')&& (fuhao1=='+'))
jia(a,b);
else if(fuhao1=='+'&&fuhao2=='-')
{
if(Cmp(a,b)==1){fuhao32=0;jianqu=1;jian(a,b);}
if(Cmp(a,b)==0)cout<<0<<endl;
if(Cmp(a,b)==-1){fuhao32=1;jianqu=1;jian(b,a);}
}
else if((fuhao1=='-')&&(fuhao2=='+') )
{
if(Cmp(a,b)==1){fuhao32=1;jianqu=1;jian(a,b);}
if(Cmp(a,b)==0)cout<<0<<endl;
if(Cmp(a,b)==-1){fuhao32=0;jianqu=1;jian(b,a);}
}
else if((fuhao2=='-')&& (fuhao1=='-'))
{
fuhao31=1;
jia(a,b);
}
}
void sub(int a[MAX],int b[MAX])
{
jianqu=1;
if((fuhao1=='+')&&(fuhao2=='+'))
{
if(Cmp(a,b)==0)cout<<0<<endl;
if(Cmp(a,b)==-1){fuhao32=1;jian(b,a);}
if(Cmp(a,b)==1)jian(a,b);
}
if((fuhao1=='+')&&(fuhao2=='-')){add1=1;jia(a,b);}
if(( fuhao1=='-')&&(fuhao2=='+') ){fuhao31=1;add1=1;jia(a,b);}
if((fuhao1=='-')&&(fuhao2=='-'))
{
if(Cmp(a,b)==0)cout<<0<<endl;
if(Cmp(a,b)==-1)jian(b,a);
if(Cmp(a,b)==1){fuhao32=1;jian(a,b);}
}
}
void Mul(int a[MAX],int b[MAX])
{
chengyi=1;
if(fuhao1==fuhao2)
{
///if(Cmp(a,b)==1){cout<<'?1'<<endl;cheng(a,b);}
//f(Cmp(a,b)==-1){cout<<'?'<<endl;cheng(a,b);}
//if(Cmp(a,b)==0){cout<<'?,'<<endl;cheng(b,a);}
cheng(a,b,len1,len2);
fuhao33=0;
}
if(fuhao1!=fuhao2)
{
fuhao33=1;
//if(Cmp(a,b)==1||Cmp(a,b)==0)cheng(a,b);
// if(Cmp(a,b)==-1)cheng(b,a);
cheng(a,b,len1,len2);
}
}
void Div(int a[MAX],int b[MAX])
{
if (fuhao1==fuhao2)
{
if(Cmp(a,b)==1)chu(a,b);
if(Cmp(a,b)==0)cout<<1<<endl;
if(Cmp(a,b)==-1)cout<<0<<endl;
}
if (fuhao1!=fuhao2)
{
fuhao34=1;
if(Cmp(a,b)==1)chu(a,b);
if(Cmp(a,b)==0)cout<<-1<<endl;
if(Cmp(a,b)==-1)cout<<0<<endl;
}
}
void cout1()
{
for (i=0;i<MAX;i++)
{
cout<<num[i];
}
cout<<endl;
}
void jia(int a[MAX],int b[MAX])
{
si=0;
for (i=MAX-1;i>=0;i--)
{
if (a[i]+b[i]+si>9)
{
c[i]=a[i]+b[i]+si-10;
si=1;
}
if (a[i]+b[i]+si<9)
{
c[i]=a[i]+b[i]+si;
si=0;
}
}
if (add1==1)
{
if(fuhao31==1)cout<<'-';
for (i=0;i<MAX;i++)
{
if (!sa)
{
if(c[i]!=0)sa=1;
}
if(sa==1)cout<<c[i];
}
cout<<endl;
}
}
void jian(int a[MAX],int b[MAX])
{
for(i=0;i<MAX;i++)
{
c[i]=0;
}
si=0,sa=0;
for (i=MAX-1;i>=0;i--)
{
//if(a[i]=b[i]==0)break;
if (a[i]-b[i]-si<0)
{
c[i]=a[i]-b[i]+10-si;
si=1;
}
if (a[i]-b[i]-si>=0)
{
c[i]=a[i]-b[i]-si;
si=0;
}
}
if (jianqu)
{
if(fuhao32==1)cout<<'-';
for (i=0;i<MAX;i++)
{
if(!sa)
{
if(c[i]!=0)sa=1;
}
if(sa==1)cout<<c[i];
}
cout<<endl;
}
}
void cheng(int a[MAX],int b[MAX],int lenx,int leny)
{
/*si=0;
for (i=MAX-1;i>=0;i--)//b
for(j=MAX-1;j>=0;j--)
{
if (a[i]*b[i]+si>9)
{
c[i]=(a[i]*b[i])/10;
si=(a[i]*b[i])%10;
}
if(a[i]*b[i]+si<9)
{
c[i]=a[i]*b[i]+si;
si=0;
}
}*/
for(i=0;i<MAX;i++)
{
result[i]=0;
}
sign=0,sa=0;
//int a[MAX],b[MAX],c[MAX];//a数组放被乘数(*this),b数组放乘数(val),a*b的结果放在临时数组c中
int n,m,w,x,y,z,i,j;
n=lenx;//存放被乘数的位数
m=leny;//存放乘数的位数
/*for(i=MAX-1;i>0;i--)
{
a[i]=num1[i];//被乘数循环赋值给数组a
b[i]=num2[i];
c[i]=0;
}*/
for(i=0;i<MAX;i++)cm[i]=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
x=(a[MAX-i-1])*(b[MAX-j-1]);
y=x/10; //判断是否进位
z=x%10; //相应位数上进行取模修正
w=i+j+1; //对相应位数进行确认,w放的是位数,eg:是个位还是万位
cm[w]=cm[w]+z; //已经算出的相应位数要先相加
cm[w+1]=cm[w+1]+y+cm[w]/10; //进位修正
cm[w]=cm[w]%10; //相应位数上的数进行修正
}
}
for(i=MAX-1,n=1;i>1;i--)
{
result[i]=cm[n++];
}
if (chengyi)
{
if(fuhao33==1)cout<<'-';
for (i=0;i<MAX;i++)
{
if (!sa)
{
if(result[i]!=0)sa=1;
}
if(sa==1)cout<<result[i];
}
cout<<endl;
}
}
int chu(int a[MAX],int b[MAX])
{
sa=0,sb=0;
int u[MAX],v[MAX],p[MAX],q[MAX],Q[MAX],Q1[MAX],chengyi1[MAX],chengyi2[MAX],mx[MAX],ucnt=0,k=0,vcnt=0,n;
static int m;
for (i=0;i<MAX;i++)
{
u[i]=0;v[i]=0;q[i]=0;Q[i]=0;chengyi1[i]=0;chengyi2[i]=0;p[i]=0;mx[i]=0;Q1[j]=0;
}
for (i=0;i<MAX;i++)
{
if (!sa)
{
if(a[i]!=0)sa=1;
}
if(sa==1)u[ucnt++]=a[i];
if (!sb)
{
if(b[i]!=0)sb=1;
}
if(sb==1)v[vcnt++]=b[i];
}
m=ucnt-vcnt;
n=vcnt;
int cnt=0,count=0;
int shengxia=0;
while(m>=0)
{
if (m==0)
{
m=-1;
q[count++]=u[0]/v[0];
}
if (u[0]>=v[0]&&m>0)
{
q[count++]=u[0]/v[0];
chengyi1[MAX-1]=q[count-1];
cheng(chengyi1,b,1,vcnt);
for (i=MAX-1;i>MAX-n-1;i--)
{
chengyi2[i]=u[k++];
}
jian(chengyi2,result);
sa=0,k=0;
for (i=0;i<MAX;i++)
{
if (!sa)
{
if(c[i]!=0)sa=1;
}
if(sa==1)mx[k++]=c[i];
}
int shengxia=m+k;
m=shengxia-vcnt;
for (i=0;i<k;i++)
{
u[i]=mx[i];
}
int w=0;
for (i=k;i<m+k+vcnt;i++)
{
u[i]=u[vcnt+w];
w++;
}
}
else if (u[0]<v[0]&&m>0)
{
for (i=0;i<MAX;i++)
{Q[i]=0;chengyi1[i]=0;chengyi2[i]=0;p[i]=0;mx[i]=0;Q1[j]=0;}
for (int mm=9;mm>0;mm--)
{
for (i=0;i<MAX;i++)chengyi1[i]=0;
chengyi1[MAX-1]=mm;
cheng(chengyi1,b,1,vcnt);
for(i=0;i<MAX;i++)chengyi2[i]=0;
for(i=MAX-1,j=n;j>=0;i--,j--)
{
chengyi2[i]=u[j];
}
if(Cmp(chengyi2,result)==1||Cmp(chengyi2,result)==0)
{
q[count++]=0;
q[count++]=mm;
break;
}
}
jian(chengyi2,result);
sa=0,k=0;
for (i=0;i<MAX;i++)
{
if (!sa)
{
if(c[i]!=0)sa=1;
}
if(sa==1)mx[k++]=c[i];
}
int shengxia=m+k-1;