/*
N개의 자연수와 자연수 M이 주어졌을 때,
N개의 자연수 중에서 M개를 고른 수열.
*/
#include<iostream>
#include<algorithm>
using namespace std;
int board[10];
int n, m;
int arr[10];
bool isused[10];
void func(int k) {
if (k == m) {
for (int i = 0; i < m; i++) {
cout << board[arr[i]] << ' ';
}
cout << '\n';
return;
}
for (int i = 0; i < n; i++) {
if (isused[i])continue;
arr[k] = i;
isused[i] = 1;
func(k + 1);
isused[i] = 0;
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for (int i = 0; i < n; i++)
cin >> board[i];
sort(board, board + n);
func(0);
}