#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> div(vector<int> &A,int b,int &r){
r=0;
vector<int> C;//存商
for(int i=A.size()-1;i>=0;i--){
r=r*10+A[i];
C.push_back(r/b);//万千百十个
r%=b;
}
reverse(C.begin(),C.end());//个十百千万
while(C.size()>1&&C.back()==0) C.pop_back();//去除高位前导零
return C;
}
int main() {
string a;
while(cin>>a&&a[0]!='-'){
vector<int> A;
for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');//个十百千万
bool flag=false;
for(int k=2;k<=9;k++){
int r;//存储余数
div(A,k,r);
if(r==0) {
cout<<k<<" ";
flag=true;
}
}
if(flag) cout<<endl;
if(!flag) cout<<"none"<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")