#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
string multipication(string x, string y);
string addition(string x4, string y4);
void divide(string x, int n);
int m1;
int main()
{
int i,p,j,x,q,k;
char rol;
string y, ma, m, n;
vector<int>v;
int taken[11];
while (cin>>n>>m)
{
if (n == "0"&& m == "0")
break;
y = n;
memset(taken, 0, sizeof(taken));
ma = "1";
for (k = 1; ; k++)
{
if (n == "0")
break;
if (m == "0")
break;
if (m == "1")
break;
ma = multipication(y, ma);
if (taken[ma[ma.size() - 1] - '0'] == 0)
{
v.push_back(ma[ma.size() - 1] - '0');
taken[ma[ma.size() - 1] - '0'] = 1;
}
else
break;
}
if (n == "0")
cout << 0 << "\n";
else if (m == "0")
cout << 1 << "\n";
else if (m == "1")
cout << n << "\n";
else
{
divide(m, v.size());
if (m1 == 0)
cout << v[v.size() - 1] << "\n";
else
cout << v[m1 - 1] << "\n";
}
v.clear();
}
}
string multipication(string x, string y)
{
string z, m1, pa, pa1, ka;
int i, j, m, p, check;
char c;
if (x.size() > y.size())
swap(x, y);
pa = "";
m1 = "";
check = 0;
for (i = x.size() - 1; i >= 0; i--)
{
z = "", p = 0;
for (j = y.size() - 1; j >= 0; j--)
{
m = (y[j] - '0')*(x[i] - '0') + p;
p = 0;
p = (m / 10);
c = (m % 10) + '0';
z = z + c;
}
if (m >= 10)
{
c = ((m / 10) + '0');
z = z + c;
}
reverse(z.begin(), z.end());
z = z + m1;
m1 = m1 + '0';
pa = addition(pa, z);
}
int ma = 0;
for (i = 0; i < pa.size(); i++)
{
if (pa[i] != '0')
ma = 1;
if (ma == 1)
{
ka = ka + pa[i];
}
}
return ka;
}
string addition(string x4, string y4)
{
string z, z1;
z = "";
z1 = "";
long long i, sum, p;
char c;
if (y4.size()<x4.size())
{
for (i = 0; i<(x4.size() - y4.size()); i++)
{
z = z + '0';
}
z = z + y4;
y4 = z;
}
else if (x4.size()<y4.size())
{
for (i = 0; i<(y4.size() - x4.size()); i++)
{
z = z + '0';
}
z = z + x4;
x4 = z;
}
p = 0;
for (i = x4.size() - 1; i >= 0; i--)
{
sum = p + (x4[i] - '0') + (y4[i] - '0');
p = 0;
if (sum >= 10)
p = 1;
c = ((sum % 10) + '0');
z1 = z1 + c;
}
if (sum >= 10)
z1 = z1 + "1";
reverse(z1.begin(), z1.end());
return z1;
}
void divide(string x, int n)
{
int i;
m1 = 0;
for (i = 0; i < x.size(); i++)
{
if (m1 < n)
m1 = m1 * 10 + (x[i]-'0');
if (m1 >= n)
{
if (m1%n != 0)
{
m1 = (m1%n);
}
if (m1%n == 0)
m1 = 0;
}
}
}
ICNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8Y3N0cmluZz4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cmluZyBtdWx0aXBpY2F0aW9uKHN0cmluZyB4LCBzdHJpbmcgeSk7CnN0cmluZyBhZGRpdGlvbihzdHJpbmcgeDQsIHN0cmluZyB5NCk7CnZvaWQgZGl2aWRlKHN0cmluZyB4LCBpbnQgbik7CmludCBtMTsKaW50IG1haW4oKQp7CglpbnQgIGkscCxqLHgscSxrOwoJY2hhciByb2w7CglzdHJpbmcgeSwgbWEsIG0sIG47Cgl2ZWN0b3I8aW50PnY7CglpbnQgdGFrZW5bMTFdOwoJd2hpbGUgKGNpbj4+bj4+bSkKCXsKCQlpZiAobiA9PSAiMCImJiBtID09ICIwIikKCQkJYnJlYWs7CgkJeSA9IG47CgkJbWVtc2V0KHRha2VuLCAwLCBzaXplb2YodGFrZW4pKTsKCQltYSA9ICIxIjsKCQlmb3IgKGsgPSAxOyA7IGsrKykKCQl7CgkJCWlmIChuID09ICIwIikKCQkJCWJyZWFrOwoJCQlpZiAobSA9PSAiMCIpCgkJCQlicmVhazsKCQkJaWYgKG0gPT0gIjEiKQoJCQkJYnJlYWs7CgkJCW1hID0gbXVsdGlwaWNhdGlvbih5LCBtYSk7CgkJCWlmICh0YWtlblttYVttYS5zaXplKCkgLSAxXSAtICcwJ10gPT0gMCkKCQkJewoJCQkJdi5wdXNoX2JhY2sobWFbbWEuc2l6ZSgpIC0gMV0gLSAnMCcpOwoJCQkJdGFrZW5bbWFbbWEuc2l6ZSgpIC0gMV0gLSAnMCddID0gMTsKCgkJCX0KCQkJZWxzZQoJCQkJYnJlYWs7CgkJfQoJCWlmIChuID09ICIwIikKCQkJY291dCA8PCAwIDw8ICJcbiI7CgkJZWxzZSBpZiAobSA9PSAiMCIpCgkJCWNvdXQgPDwgMSA8PCAiXG4iOwoJCWVsc2UgaWYgKG0gPT0gIjEiKQoJCQljb3V0IDw8IG4gPDwgIlxuIjsKCQllbHNlCgkJewoJCQkgZGl2aWRlKG0sIHYuc2l6ZSgpKTsKCQkJaWYgKG0xID09IDApCgkJCQljb3V0IDw8IHZbdi5zaXplKCkgLSAxXSA8PCAiXG4iOwoJCQllbHNlCgkJCQljb3V0IDw8IHZbbTEgLSAxXSA8PCAiXG4iOwoJCX0KCQl2LmNsZWFyKCk7CgoKCX0KfQpzdHJpbmcgbXVsdGlwaWNhdGlvbihzdHJpbmcgeCwgc3RyaW5nIHkpCnsKCXN0cmluZyAgeiwgbTEsIHBhLCBwYTEsIGthOwoJaW50IGksIGosIG0sIHAsIGNoZWNrOwoJY2hhciBjOwoJaWYgKHguc2l6ZSgpID4geS5zaXplKCkpCgkJc3dhcCh4LCB5KTsKCXBhID0gIiI7CgltMSA9ICIiOwoJY2hlY2sgPSAwOwoJZm9yIChpID0geC5zaXplKCkgLSAxOyBpID49IDA7IGktLSkKCXsKCQl6ID0gIiIsIHAgPSAwOwoJCWZvciAoaiA9IHkuc2l6ZSgpIC0gMTsgaiA+PSAwOyBqLS0pCgkJewoJCQltID0gKHlbal0gLSAnMCcpKih4W2ldIC0gJzAnKSArIHA7CgkJCXAgPSAwOwoJCQlwID0gKG0gLyAxMCk7CgoJCQljID0gKG0gJSAxMCkgKyAnMCc7CgkJCXogPSB6ICsgYzsKCQl9CgoJCWlmIChtID49IDEwKQoJCXsKCQkJYyA9ICgobSAvIDEwKSArICcwJyk7CgkJCXogPSB6ICsgYzsKCQl9CgoJCXJldmVyc2Uoei5iZWdpbigpLCB6LmVuZCgpKTsKCQl6ID0geiArIG0xOwoJCW0xID0gbTEgKyAnMCc7CgkJcGEgPSBhZGRpdGlvbihwYSwgeik7CgoJfQoJaW50ICBtYSA9IDA7Cglmb3IgKGkgPSAwOyBpIDwgcGEuc2l6ZSgpOyBpKyspCgl7CgkJaWYgKHBhW2ldICE9ICcwJykKCQkJbWEgPSAxOwoJCWlmIChtYSA9PSAxKQoJCXsKCQkJa2EgPSBrYSArIHBhW2ldOwoJCX0KCX0KCXJldHVybiBrYTsKfQoKc3RyaW5nIGFkZGl0aW9uKHN0cmluZyB4NCwgc3RyaW5nIHk0KQp7CglzdHJpbmcgeiwgejE7Cgl6ID0gIiI7Cgl6MSA9ICIiOwoJbG9uZyBsb25nIGksIHN1bSwgcDsKCWNoYXIgYzsKCWlmICh5NC5zaXplKCk8eDQuc2l6ZSgpKQoJewoJCWZvciAoaSA9IDA7IGk8KHg0LnNpemUoKSAtIHk0LnNpemUoKSk7IGkrKykKCQl7CgkJCXogPSB6ICsgJzAnOwoJCX0KCQl6ID0geiArIHk0OwoJCXk0ID0gejsKCX0KCWVsc2UgaWYgKHg0LnNpemUoKTx5NC5zaXplKCkpCgl7CgkJZm9yIChpID0gMDsgaTwoeTQuc2l6ZSgpIC0geDQuc2l6ZSgpKTsgaSsrKQoJCXsKCQkJeiA9IHogKyAnMCc7CgkJfQoJCXogPSB6ICsgeDQ7CgkJeDQgPSB6OwoJfQoJcCA9IDA7Cglmb3IgKGkgPSB4NC5zaXplKCkgLSAxOyBpID49IDA7IGktLSkKCXsKCQlzdW0gPSBwICsgKHg0W2ldIC0gJzAnKSArICh5NFtpXSAtICcwJyk7CgkJcCA9IDA7CgkJaWYgKHN1bSA+PSAxMCkKCQkJcCA9IDE7CgkJYyA9ICgoc3VtICUgMTApICsgJzAnKTsKCQl6MSA9IHoxICsgYzsKCX0KCWlmIChzdW0gPj0gMTApCgkJejEgPSB6MSArICIxIjsKCXJldmVyc2UoejEuYmVnaW4oKSwgejEuZW5kKCkpOwoJcmV0dXJuIHoxOwp9CnZvaWQgZGl2aWRlKHN0cmluZyB4LCBpbnQgbikKewoKCQoJaW50IGk7CgltMSA9IDA7Cglmb3IgKGkgPSAwOyBpIDwgeC5zaXplKCk7IGkrKykKCXsKCgkJaWYgKG0xIDwgbikKCQkJbTEgPSBtMSAqIDEwICsgKHhbaV0tJzAnKTsKCQlpZiAobTEgPj0gbikKCQl7CgkJCWlmIChtMSVuICE9IDApCgkJCXsKCQkJCW0xID0gKG0xJW4pOwoKCQkJfQoJCQlpZiAobTElbiA9PSAwKQoJCQkJbTEgPSAwOwoJCSAKCQl9CgoJfQoJCgp9