#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstring>
using namespace std;
int main(){
//辗转相除法
/*
用较大的数除以较小的数,再用出现的余数除以除数(变成被除数),
再用余数(第二余数)除以第一余数,如此反复,知道最后余数是0
为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数
的最大公约数
*/
int m,n;
cin>>m>>n;
int r=m;
while(r!=0){
r=m%n;
m=n;
n=r;
}
cout<<m;
return 0;
}