#include <bits/stdc++.h>
using namespace std;
int a[20]={10,8,9,8,10},p=5;
void zhuan(int n,int b)
{
while(n!=0)
{
a[p++]=n%b;
n/=b;
}
}
bool hui()
{
int i;
for(i=0;i<p/2;i++) if(a[i]!=a[p-i-1]) return false;
return true;
}
int main()
{
int n,i,b[40],q=0;
cin>>n;
for(i=2;i<=36;i++)
{
p=0;
zhuan(n,i);
if(hui())
{
b[q++]=i;
}
}
cout<<q<<endl;
for(i=0;i<q;i++) cout<<b[i]<<endl;
return 0;
}
/**************************************************************
Problem: 2101
User: admin
Language: C++
Result: Accepted
Time:79 ms
Memory:2072 kb
****************************************************************/