#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
****************************************************************/