#include<iostream>
using namespace std;
bool Is_P(int *a,int n)
{
int i;
bool Is=true;
for(i=0;i<n/2;i++)
{
if(a[i]!=a[n-1-i]) Is=false;
}
return Is;
}
bool trans(int num,int n)
{
int a[20],j;
j=0;
while(num)
{
a[j++]=num%n;
num/=n;
}
return(Is_P(a,j));
}
int main()
{
int num,i;
cin>>num;
while(num!=0)
{
for(i=2;i<=16;i++)
{
if(trans(num,i)) break;
}
if(i>16)
{
cout<<"Number "<<num<<" is not a palindrom\n";
}
else
{
cout<<"Number "<<num<<" is palindrom in basis";
for(i=2;i<=16;i++)
{
if(trans(num,i)) cout<<" "<<i;
}
cout<<endl;
}
cin>>num;
}
return 0;
}
using namespace std;
bool Is_P(int *a,int n)
{
int i;
bool Is=true;
for(i=0;i<n/2;i++)
{
if(a[i]!=a[n-1-i]) Is=false;
}
return Is;
}
bool trans(int num,int n)
{
int a[20],j;
j=0;
while(num)
{
a[j++]=num%n;
num/=n;
}
return(Is_P(a,j));
}
int main()
{
int num,i;
cin>>num;
while(num!=0)
{
for(i=2;i<=16;i++)
{
if(trans(num,i)) break;
}
if(i>16)
{
cout<<"Number "<<num<<" is not a palindrom\n";
}
else
{
cout<<"Number "<<num<<" is palindrom in basis";
for(i=2;i<=16;i++)
{
if(trans(num,i)) cout<<" "<<i;
}
cout<<endl;
}
cin>>num;
}
return 0;
}