//#include<stdio.h>
//int arr[30][30]= {};
//int f(int r, int c)
//{
// arr[r][c]= f(r,c)+f(r,c-1);
//}
//
//void tri(int n)
//{
// if(n==0)
// {
// return;
// }
// tri(n-1);
// f(r,c);
// printf("\n");
//}
//
//int main ()
//{
// int n;
// scanf("%d",&n);
// tri(n);
//
// return 0;
//}
/*
//Q.1861
#include<stdio.h>
int h;//전역변수:)
int arr[30][30]= {};
int f(int r, int c)
{
if (c == 1 || c == r)
return 1;
if (arr[r][c] != 0)
return arr[r][c];
arr[r][c] = f(r - 1, c - 1) + f(r - 1, c);
return arr[r][c];
}
void sub(int n) //f(n,1) f(n,2) ... f(n,n) 출력
{
if(n !=0)
{
//printf("%d ",f(n,n-1));
sub(n-1);
printf("%d ",f(h,n));
//printf("(%d, %d) ",h,n);
}
}
void triangle(int n)
{
if(n==0)
{
return;
}
triangle(n-1);
h=n;
sub(n); // *을 n개 출력 -> f(n,1) f(n,2) ... f(n,n) 출력
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
triangle(n);
}
*/
#include<stdio.h>
int nod(int a, int b)
{
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d",nod(a,b));
return 0;
}



