/*#include <stdio.h>
int a, n;
long long int pow(int a,int n)
{
long long int i,s=1;
if(a==1)
{
return 1;
}
for(i=1;i<=n;i++)
{
s=s*a;
}
return s;
}
int main()
{
scanf("%d%d", &a, &n);
printf("%lld\n", pow(a, n));
}
*/
/*
#include <stdio.h>
int n, a, b, d[1010];
int maxi(int a,int b)
{
int i,m=a;
for(i=a;i<=b;i++)
{
if(d[m]<d[i])
{
m=i;
}
}
return m;
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d%d", &a, &b);
printf("%d\n", maxi(a, b));
}
*/
/*
#include <stdio.h>
int n, k, d[1010];
int lower_bound(int a)
{
int i;
for(i=1;i<=n;i++)
{
if(k>d[n])
{
return n+1;
}
else
{
if(k<=d[i])
{
return i;
}
}
}
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", lower_bound(k));
}
*/
/*
#include <stdio.h>
int n, k, d[1010];
int upper_bound(int a)
{
int i;
for(i=1;i<=n;i++)
{
if(k>=d[n])
{
return n+1;
}
else
{
if(k<d[i])
{
return i;
}
}
}
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
scanf("%d", &d[i]);
scanf("%d", &k);
printf("%d\n", upper_bound(k));
}
*/
/*
#include <stdio.h>
int n, d[110];
int f()
{
int m=0,i;
for(i=0;i<n;i++)
{
if(d[i]>d[m])
{
m=i;
}
}
return m+1;
}
int main()
{
scanf("%d", &n);
for(int i=0; i<n; i++)
scanf("%d", &d[i]);
printf("%d", f());
return 0;
}
*/
/*
#include <stdio.h>
int n;
int f(int a)
{
int i,c=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
{
c++;
}
}
if(c==2)
{
printf("prime");
}
else
{
printf("composite");
}
}
int main()
{
scanf("%d", &n);
f(n);
return 0;
}
*/
/*
double ABS(double a)
{
if(a<0)
{
return -a;
}
else
{
return a;
}
}
int main()
{
double n;
scanf("%lf",&n);
printf("%.10g",ABS(n));
return 0;
}
*/
#include <stdio.h>
int a, b;
int gcb(int a,int b)
{
int i;
for(i<)
}
int main()
{
scanf("%d%d", &a, &b);
printf("%d\n", gcd(a, b));
}