#include <algorithm>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
string delive(string s,int x)
{
int car = 0;
for(int i=0;i<s.size();i++)
{
int num = car*10 + (s[i]-'0');
s[i] = num/x + '0';
car = num%x;
}
while(s[0]=='0')s.erase(0,1);
if(s=="")s="0";
return s;
}
string Mul(string s1,string s2)
{
int l1 = s1.size(),l2 = s2.size();
if(l1<l2)swap(s1,s2);
reverse(s1.begin(),s1.end());
reverse(s2.begin(),s2.end());
int len = l1+l2+2;
int ans[len];
memset(ans,0,sizeof(ans));
for(int i=0;i<s1.size();i++)
{
for(int j=0;j<s2.size();j++)
{
ans[i+j] +=(s1[i]-'0')*(s2[j]-'0');
}
}
string s="";
for(int i=0;i<len;i++)
{
int num = ans[i]/10;
ans[i] %= 10;
ans[i+1] += num;
char c = ans[i]+'0';
s = s+c;
}
reverse(s.begin(),s.end());
while(s[0]=='0')s.erase(0,1);
if(s=="")s="0";
return s;
}
int main() {
string s;
while(cin>>s&&s!="-1")
{
while(s[0]=='0')s.erase(0,1);
int flag = 0;
for(int i=2;i<=9;i++)
{
string ans = delive(s,i);
string now = "";
char c = i+'0';
now = now+c;
// cout<<ans<<endl;
string ss = Mul(ans,now);
// cout<<ss<<endl;
if(ss==s)
{
cout<<i<<" ";
flag = 1;
}
}
if(!flag)cout<<"none";
cout<<endl;
}
// cout<<delive("30",4)<<endl;
// cout<<Mul("30","9");
}
// 64 位输出请用 printf("%lld")