#include<iostream>
using namespace std;
//最大公约数的递归和非递归算法。
//输入两个数,m,n求他们的最大公约数。
int gcd1(int a,int b)
{
if(b==0) return a;
else return gcd1(b,a%b);//递归算法。
}
int gcd2(int a,int b)
{
int t;
while(b)//非递归算法。
{
t=a%b;
a=b;
b=t;
}
return a;
}
int main()
{
int x,y;
cin>>x>>y;
cout<<gcd1(x,y)<<endl;
cout<<gcd2(x,y)<<endl;
return 0;
}