#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> P;
const int N=77;
const double PI=acos(-1);
#define line '\n'
#define gt getchar()
#define mid ((L+R)>>1)
int read(){int x=0,op=1;char c=gt;while(!isdigit(c)){if(c=='-')op=-1;c=gt;}while(isdigit(c))x=x*10+c-48,c=gt;return x*op;}
int a[N],n;
vector<int> V;
void dfs(int sum,int val,int k)
{
if(sum>n||val>999999)return;
if(val>10000){
int mark=0;
for(int i=1;i<=k/2;++i)if(a[i]!=a[k-i+1]){
mark=1;
break;
}
if(!mark&&sum==n)V.push_back(val);
}
for(int i=0;i<=9;++i){
if(!k&&!i)continue;
a[k+1]=i;
int sm=sum+i,vl=val*10+i;
dfs(sm,vl,k+1);
}
}
int main()
{
n=read();
dfs(0,0,0);
sort(V.begin(),V.end());
for(int i=0;i<V.size();++i)cout<<V[i]<<line;
return 0;
}