2025-08-25 20:52:21 +09:00

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)