template<class T>
void Perml(int m,T *ver,intconst size)
{
if (m==size-1)
{
Output(ver,size);
}
else
{
for (int j=m;j<size;++j)
{
swap(ver[j],ver[m]);
Perml(m+1,ver,size);
swap(ver[j],ver[m]);
}
}
}
template<class T>
void Output(T*ver,intconst size)
{
for (int i=0;i<size;++i)
{
cout<<setw(5)<<ver[i];
}
cout<<endl;
}
int main()
{
intconst SIZE=10;
char ver[SIZE];
int size;
cin>>size;
for(int i=0;i<size;++i)
{
ver[i]=0x30+i;
}
Perml(0,ver,size);
}