#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
int rem(string str, int a){
if (str.empty())
{
return 0;
}
int temp = (str[str.length() - 1] - '0') % a;
int temp2 = 10 % a;
str.erase(str.length() - 1);
int temp3 = (rem(str, a)*temp2) % a;
return (temp3 + temp) % a;
}
int gcdf(int a, int b)
{
return b ? gcdf(b, a%b) : a;
}
int main(){
string str;
while (cin >> str)
{
size_t l = str.length();
vector<int> digit;
int sum = 0;
int frequency[9];
for (int i = 0; i<9; i++)
frequency[i] = 0;
int zero_sum = 0;
for (size_t i = 0; i < l; i++)
{
if (str.at(i) != '0')
{
frequency[str.at(i) - '1']++;
sum += str.at(i) - '0';
}
else
{
zero_sum++;
}
}
for (size_t i = 0; i < 9; i++)
{
if (frequency[i])
{
digit.push_back(i + 1);
}
}
int gcds = 0, gcd = 1;
for (size_t i = 0; i < digit.size(); i++)
{
gcds = gcdf(digit[i], gcds);
}
if (gcdf(3, gcds) == 1)
{
gcd *= gcds;
}
if (gcds == 6)
{
gcd *= 2;
}
if ((rem(str, 81) == 0) && (gcdf(gcds, 3) == 3))
{
gcd *= 81;
}
else
{
if ((rem(str, 27) == 0) && (gcdf(gcds, 3) == 3))
{
gcd *= 27;
}
else
{
if (sum % 9 == 0)
{
gcd *= 9;
}
else
{
if (sum % 3 == 0)
{
gcd *= 3;
}
}
}
}
if((digit.size()==1)&&(zero_sum==0))
cout<<str;
else
cout << gcd << endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHN0cmluZz4KCgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCByZW0oc3RyaW5nIHN0ciwgaW50IGEpewoJaWYgKHN0ci5lbXB0eSgpKQoJewoJCXJldHVybiAwOwoJfQoJaW50IHRlbXAgPSAoc3RyW3N0ci5sZW5ndGgoKSAtIDFdIC0gJzAnKSAlIGE7CglpbnQgdGVtcDIgPSAxMCAlIGE7CglzdHIuZXJhc2Uoc3RyLmxlbmd0aCgpIC0gMSk7CglpbnQgdGVtcDMgPSAocmVtKHN0ciwgYSkqdGVtcDIpICUgYTsKCXJldHVybiAodGVtcDMgKyB0ZW1wKSAlIGE7Cn0KCgppbnQgZ2NkZihpbnQgYSwgaW50IGIpCnsKCXJldHVybiBiID8gZ2NkZihiLCBhJWIpIDogYTsKfQoKCmludCBtYWluKCl7CglzdHJpbmcgc3RyOwoJd2hpbGUgKGNpbiA+PiBzdHIpCgl7CgkJCgkJc2l6ZV90IGwgPSBzdHIubGVuZ3RoKCk7CgkJdmVjdG9yPGludD4gZGlnaXQ7CgkJaW50IHN1bSA9IDA7CgkJaW50IGZyZXF1ZW5jeVs5XTsKCQlmb3IgKGludCBpID0gMDsgaTw5OyBpKyspCgkJCWZyZXF1ZW5jeVtpXSA9IDA7CgkJaW50IHplcm9fc3VtID0gMDsKCQlmb3IgKHNpemVfdCBpID0gMDsgaSA8IGw7IGkrKykKCQl7CgkJCWlmIChzdHIuYXQoaSkgIT0gJzAnKQoJCQl7CgkJCQlmcmVxdWVuY3lbc3RyLmF0KGkpIC0gJzEnXSsrOwoJCQkJc3VtICs9IHN0ci5hdChpKSAtICcwJzsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCXplcm9fc3VtKys7CgkJCX0KCQl9CgoJCWZvciAoc2l6ZV90IGkgPSAwOyBpIDwgOTsgaSsrKQoJCXsKCQkJaWYgKGZyZXF1ZW5jeVtpXSkKCQkJewoJCQkJZGlnaXQucHVzaF9iYWNrKGkgKyAxKTsKCQkJfQoJCX0KCQlpbnQgZ2NkcyA9IDAsIGdjZCA9IDE7CgkJZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkaWdpdC5zaXplKCk7IGkrKykKCQl7CgkJCWdjZHMgPSBnY2RmKGRpZ2l0W2ldLCBnY2RzKTsKCQl9CgkJaWYgKGdjZGYoMywgZ2NkcykgPT0gMSkKCQl7CgkJCWdjZCAqPSBnY2RzOwoJCX0KCQlpZiAoZ2NkcyA9PSA2KQoJCXsKCQkJZ2NkICo9IDI7CgkJfQoJCWlmICgocmVtKHN0ciwgODEpID09IDApICYmIChnY2RmKGdjZHMsIDMpID09IDMpKQoJCXsKCQkJZ2NkICo9IDgxOwoJCX0KCQllbHNlCgkJewoJCQlpZiAoKHJlbShzdHIsIDI3KSA9PSAwKSAmJiAoZ2NkZihnY2RzLCAzKSA9PSAzKSkKCQkJewoJCQkJZ2NkICo9IDI3OwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJaWYgKHN1bSAlIDkgPT0gMCkKCQkJCXsKCQkJCQlnY2QgKj0gOTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlpZiAoc3VtICUgMyA9PSAwKQoJCQkJCXsKCQkJCQkJZ2NkICo9IDM7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCWlmKChkaWdpdC5zaXplKCk9PTEpJiYoemVyb19zdW09PTApKQoJCWNvdXQ8PHN0cjsKCQllbHNlCgkJCWNvdXQgPDwgZ2NkIDw8IGVuZGw7CgkJCgoJfQoJcmV0dXJuIDA7Cn0KCgoKCgo=