N, M = map(int, input().split())

num_list = [i + 1 for i in range(N)]
check_list = [False] * N

arr = []

def dfs(cnt):
	# 주어진 만큼 출력한다.
    if(cnt == M):
        print(*arr)
        return
    
    for i in range(0, N):
        if(check_list[i]):
            continue
        arr.append(num_list[i])
        
        dfs(cnt + 1)
        check_list[i] = True
        arr.pop()
        
        for j in range(0, N):
            check_list[j] = False
        
dfs(0)

 

'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글

백준 9963번(python)  (0) 2019.12.31
백준 15652번(python)  (0) 2019.12.31
백준 15650번(python)  (0) 2019.12.31
백준 15649번(python)  (1) 2019.12.31
백준 1912번(python)  (0) 2019.08.20