#include<bits//stdc++.h>
using namespace std;
int visited[5];
vector<string>vec1;
vector<string>vec;
map<int,set<string>>mp;
map<string,int>mp1;
void getans(int index, string & s1, string &s2)
{
if(index==5)
{
mp1[s2]=1;
vec1.push_back(s2);
return;
}
for(int i=0;i<5;i++)
{
if(visited[i]==1) continue;
else
{
s2+=s1[i];
visited[i]=1;
getans(index+1,s1,s2);
visited[i]=0;
s2.pop_back();
}
}
return;
}
void getans1(int index,string & s)
{
if(index==5)
{
vec.push_back(s);
return;
}
for(int i='0';i<='9';i++)
{
s+=i;
getans1(index+1,s);
s.pop_back();
}
}
int main()
{
memset(visited,0,sizeof(visited));
string s;
vec1.clear();
getans1(0,s);
s.clear();
for(int i=0;i<vec.size();i++)
{
if(mp1[vec[i]]) continue;
vec1.clear();
getans(0,vec[i],s);
int sum=0;
for(int j=0;j<vec1.size();j++)
sum+=stoi(vec1[j]);
for(int j=0;j<vec1.size();j++)
{
int x=stoi(vec1[j]);
mp[sum-x].insert(vec1[j]);
}
}
int x;
while(cin>>x)
{
for(auto child:mp[x])
cout<<child<<" ";
cout<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy8vc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB2aXNpdGVkWzVdOwp2ZWN0b3I8c3RyaW5nPnZlYzE7CnZlY3RvcjxzdHJpbmc+dmVjOwptYXA8aW50LHNldDxzdHJpbmc+Pm1wOwptYXA8c3RyaW5nLGludD5tcDE7CnZvaWQgZ2V0YW5zKGludCBpbmRleCwgc3RyaW5nICYgczEsIHN0cmluZyAmczIpCnsKICAgIGlmKGluZGV4PT01KQogICAgeyAgIAogICAgICAgIG1wMVtzMl09MTsKICAgICAgICB2ZWMxLnB1c2hfYmFjayhzMik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZm9yKGludCBpPTA7aTw1O2krKykKICAgIHsKICAgICAgICBpZih2aXNpdGVkW2ldPT0xKSBjb250aW51ZTsKICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzMis9czFbaV07CiAgICAgICAgICAgIHZpc2l0ZWRbaV09MTsKICAgICAgICAgICAgZ2V0YW5zKGluZGV4KzEsczEsczIpOwogICAgICAgICAgICB2aXNpdGVkW2ldPTA7CiAgICAgICAgICAgIHMyLnBvcF9iYWNrKCk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CnZvaWQgZ2V0YW5zMShpbnQgaW5kZXgsc3RyaW5nICYgcykKewogICAgaWYoaW5kZXg9PTUpCiAgICB7CiAgICAgICAgdmVjLnB1c2hfYmFjayhzKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBmb3IoaW50IGk9JzAnO2k8PSc5JztpKyspCiAgICB7ICAKICAgICAgICBzKz1pOwogICAgICAgIGdldGFuczEoaW5kZXgrMSxzKTsKICAgICAgICBzLnBvcF9iYWNrKCk7CiAgICB9Cn0KaW50IG1haW4oKQp7ICAgIAogICAgIG1lbXNldCh2aXNpdGVkLDAsc2l6ZW9mKHZpc2l0ZWQpKTsKICAgIHN0cmluZyBzOwogICAgdmVjMS5jbGVhcigpOwogICAgZ2V0YW5zMSgwLHMpOwogICAgcy5jbGVhcigpOwogICAgZm9yKGludCBpPTA7aTx2ZWMuc2l6ZSgpO2krKykKICAgIHsgICAgCiAgICAgICAgIGlmKG1wMVt2ZWNbaV1dKSBjb250aW51ZTsKICAgICAgICB2ZWMxLmNsZWFyKCk7CiAgICAgICAgZ2V0YW5zKDAsdmVjW2ldLHMpOwogICAgICAgaW50IHN1bT0wOwogICAgICAgZm9yKGludCBqPTA7ajx2ZWMxLnNpemUoKTtqKyspCiAgICAgICAgIHN1bSs9c3RvaSh2ZWMxW2pdKTsKICAgICAgICBmb3IoaW50IGo9MDtqPHZlYzEuc2l6ZSgpO2orKykKICAgICAgICB7ICAKICAgICAgICAgICAgaW50IHg9c3RvaSh2ZWMxW2pdKTsKICAgICAgICAgICAgbXBbc3VtLXhdLmluc2VydCh2ZWMxW2pdKTsKICAgICAgICB9CiAgICB9CiAgICAgaW50IHg7CiAgICAgd2hpbGUoY2luPj54KQogICAgIHsgIAogICAgICAgIGZvcihhdXRvIGNoaWxkOm1wW3hdKQogICAgICAgIGNvdXQ8PGNoaWxkPDwiICI7CiAgICAgICAgY291dDw8ZW5kbDsKICAgICB9CiAgICByZXR1cm4gMDsKfQ==