#include<iostream>
#include<stdio.h>
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;
int m,n,a[10];
bool vis[10];
int ans [10];
void dfs(int x)
{
if(x == n)
{
for(int i = 0; i < n; i++)
cout<<ans[i]<<" ";
cout<<endl;
return ;
}
for(int i = 0; i < m ;i++)
{
if(!vis[i])
{
ans[x] = a[i];
vis[i] = 1;
dfs(x+1);
vis[i] = 0;
}
}
}
int main()
{
while(scanf("%d%d",&m,&n)!=EOF)
{
fill(vis,vis+10,0);
for(int i = 0; i < m; i++)
cin>>a[i];
sort(a,a+m);
dfs(0);
}
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,ans[15];
int a[15];
bool vis[15];
void dfs(int d,int cnt)
{
if(cnt==m)
{
for(int i=0;i<m;i++) cout<<ans[i]<<" ";
cout<<endl;
return ;
}
for(int i=d;i<n;i++)
{
ans[cnt]=a[i];
dfs(i+1,cnt+1);
}
}
int main()
{
while(cin>>n>>m)
{
fill(vis,vis+15,0);
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
dfs(0,0);
}
return 0;
}