#include <fstream>
using namespace std;
int a[100],b[100],c[100],z=1,an,bn;
ifstream f("calcule.in");
ofstream g("calcule.out");
void copiere(int a[],int &an)
{if(z<an)
an=z;
int k2,k;
for(k=1,k2=z;k<=an;k++,k2--)
{a[k]=c[k2];
c[k2]=0;c[k2+1]=0;}
}
void afis(int z)
{if(c[z])
g<<c[z];
for(int i=z-1;i>=1;i--)
g<<c[i];
}
void adunare(int a[],int b[], int an, int bn)
{int t,i=an,j=bn; z=1;
/*if(an>bn)
z=an;
else
z=bn;*/
while(i>=1&&j>=1)
{
t=a[i]+b[j];
c[z]+=t%10;
if(c[z]>=10)
{c[z+1]=c[z+1]+c[z]/10;
c[z]=c[z]%10;}
c[z+1]+=t/10;
i--;j--;z++;
}
while(i>=1)
{t=a[i];
c[z]+=t%10;
if(c[z]>=10)
{c[z+1]=c[z+1]+c[z]/10;
c[z]=c[z]%10;}
c[z+1]+=t/10;
i--;z++;
}
while(j>=1)
{t=b[j];
c[z]+=t%10;
if(c[z]>=10)
{c[z+1]=c[z+1]+c[z]/10;
c[z]=c[z]%10;}
c[z+1]+=t/10;
j--;z++;
}
}
void scadere(int a[],int b[], int an, int bn)
{int t,i=an,j=bn; z=1;
/*if(an>bn)
z=an;
else
z=bn;*/
while(i>=1&&j>=1)
{
t=a[i]-b[j];
c[z]+=t%10;
if(c[z]<0)
{c[z]=10+c[z];c[z+1]--;}
i--;j--;z++;
}
while(i>=1)
{t=a[i];
c[z]+=t%10;
if(c[z]>=10)
{c[z+1]=c[z+1]+c[z]/10;
c[z]=c[z]%10;}
c[z+1]+=t/10;
i--;z++;
}
while(j>=1)
{t=b[j];
c[z]+=t%10;
if(c[z]>=10)
{c[z+1]=c[z+1]+c[z]/10;
c[z]=c[z]%10;}
c[z+1]+=t/10;
j--;z++;
}
for(int k=z;k>=1;k--)
{ if(c[k]==0)
{//for(int g=k+1; g<=z; g++)
// c[g]=c[g-1];
z--;
}
if(c[k]!=0)
k=0;
}
}
int verificare(int an, int bn)
{ if(an>bn)
return 1;
else
if(bn>an)
return 2;
else
for(int i=1; i<=an; i++)
if(a[i]>b[i])
return 1;
else
if(a[i]<b[i])
return 2;
return 3;
}
void cmmdc(int &an, int &bn)
{
while(verificare(an, bn)!=3)
if(verificare(an, bn)==1)
{scadere(a, b, an, bn);
copiere(a, an);
}
else{
scadere(b, a, bn, an);
copiere(b, bn);
}
}
int main()
{
f>>an;
for(int i=1;i<=an;i++)
f>>a[i];
f>>bn;
for(int i=1;i<=bn;i++)
f>>b[i];
// adunare(a, a, an, an);
// afis(z);
//adunare(b, a);
g<<endl;
g<<endl;
int h=6;
/* while(h){
scadere(a, b, an, bn);
afis(z);
copiere();
g<<endl;g<<endl;
h--; }
*/
//scadere(a,b,an,bn);
//afis(z);
//
// scadere(b, a, bn, an);
cmmdc(an, bn);
g<<"\n";
for(int o=1;o<=bn;o++)
g<<b[o];
}