bool Increase(vector<int> &v)
{
bool IsOverFlow=false;
int sign=0;//进位
int len=v.size();
for(int i=len-1;i>=0;i--)
{
int digit=v[i]+sign;
if(i==len-1)
digit++;
if(digit>=10)
{
if(i==0)
IsOverFlow = true;
else
{
digit-=10;
sign=1;
v[i]=digit;
}
}
else
{
v[i]=digit;
break;
}
}
return IsOverFlow;
}
void printnum(vector<int> v)
{
int i=0;
int n=v.size();
while(v[i]==0)
i++;
for(;i<n;i++)
cout<<v[i];
}
void print1_maxnum(int n)
{
if(n<=0)
return ;
vector<int> V;
int j=0;
for(int i=0;i<n;i++)
{
V.push_back(0);
}
while(!Increase(V))
{
j++;
printnum(V);
if(j%20==0)
cout<<endl;
cout<<" ";
}
}
int main()
{
int n;
cin>>n;
print1_maxnum(n);
cout<<endl;
return 0;
}