#include <bits/stdc++.h>
using namespace std;
vector<int> a(10001), b(10001);
void jiewei(vector<int>& a, int n)
{
if (a[n] >= 1)
{
a[n]--;
return;
}
else
{
jiewei(a, n + 1);
}
}
bool if0(vector<int> a)
{
vector<int> b(10001);
if (a == b)return 1;
else return 0;
}
int judge1(vector<int> a, vector<int> b)
{
int a1 = 10000, b1 = 10000;
while (!a[a1])a1--;
while (!b[b1])b1--;
if (a1 > b1)return 1;
if (a1 < b1)return -1;
for (int i = a1;i >= 1;i--)
{
if (a[i] > b[i])return 1;
if (a[i] < b[i])return -1;
}
return 0;
}
vector<int> operator-(vector<int> a, vector<int> b)
{
vector<int> c(10001);
c = a;
int a1=10000, b1=10000;
while (!a[a1])a1--;
while (!b[b1])b1--;
for (int i = a1;i >= 1;i--)
{
if (c[i] >= b[i])
c[i] -= b[i];
else
{
c[i] = c[i] - b[i] + 10;
jiewei(c, i + 1);
}
}
return c;
}
int main()
{
string a1, b1;
cin >> a1 >> b1;
for (int i = 1;i <= a1.size();i++)
a[i] = a1[a1.size() - i]-'0';
for(int i=1;i<=b1.size();i++)
b[i] = b1[b1.size() - i] - '0';
if (judge1(a, b) == -1)
{
vector<int> c(10001);
c = a;
a = b;
b = c;
}
while (1)
{
vector<int> c(10001);
if (a==b)
{
int a1 = 10000;
while (!a[a1])a1--;
for (int i = a1;i >= 1;i--)
cout << a[i];
return 0;
}
c = a - b;
if (judge1(b, c) == 1)
{
a = b;
b = c;
}
else
{
a = c;
}
}
}