#include <iostream>
#include <iomanip>
using namespace std;
int a[30],n,m,cnt=0;
bool vis[30]; // 标记某个数字有没有被用过 // used
void print()
{
for(int i=1;i<=m;i++) cout <<setw(5) << a[i];
cout << endl;
}
void dfs(int Lv) // level
{
if(Lv==m+1) { cnt++; print(); return; } // Lv>n
for(int i=1;i<=n;i++)
{
if(vis[i]==false)
{
a[Lv]=i;
vis[i]=true;
dfs(Lv+1);
vis[i]=false;
}
}
}
int main()
{
cin>>n>>m;
dfs(1);
cout << cnt << endl;
return 0;
}