27 lines
666 B
Python
27 lines
666 B
Python
import sys
|
|
|
|
input = sys.stdin.readline
|
|
|
|
def dfs(n, m, nums, visited, result, result_set) :
|
|
if len(result) == m :
|
|
result_set.append(result.copy())
|
|
return result_set
|
|
|
|
for i in range(n) :
|
|
if not visited[i] :
|
|
visited[i] = True
|
|
result.append(nums[i])
|
|
result_set = dfs(n,m,nums,visited,result, result_set)
|
|
result.pop()
|
|
visited[i] = False
|
|
|
|
return result_set
|
|
|
|
N, M = map(int, input().split())
|
|
nums = list(map(int,input().split()))
|
|
visited = [False]*N
|
|
|
|
result_set = sorted(list(set(tuple(t) for t in dfs(N,M,nums,visited,[],[]))))
|
|
for t in result_set :
|
|
print(*t)
|