์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ก์ ๋, ์๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ธธ์ด๊ฐ M์ธ ์์ด์ ๋ชจ๋ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
1๋ถํฐ N๊น์ง ์์ฐ์ ์ค์์ M๊ฐ๋ฅผ ๊ณ ๋ฅธ ์์ด
๊ฐ์ ์๋ฅผ ์ฌ๋ฌ ๋ฒ ๊ณจ๋ผ๋ ๋๋ค.
๊ณ ๋ฅธ ์์ด์ ๋น๋ด๋ฆผ์ฐจ์์ด์ด์ผ ํ๋ค.
๊ธธ์ด๊ฐ K์ธ ์์ด A๊ฐ A1 โค A2 โค ... โค AK-1 โค AK๋ฅผ ๋ง์กฑํ๋ฉด, ๋น๋ด๋ฆผ์ฐจ์์ด๋ผ๊ณ ํ๋ค.
์ฒซ์งธ ์ค์ ์์ฐ์ N๊ณผ M์ด ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 8)
ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค.
์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด์ผ ํ๋ค.
์์ ์
๋ ฅ 1
3 1
์์ ์ถ๋ ฅ 1
1
2
3
์์ ์
๋ ฅ 2
4 2
์์ ์ถ๋ ฅ 2
1 1
1 2
1 3
1 4
2 2
2 3
2 4
3 3
3 4
4 4
์์ ์
๋ ฅ 3
3 3
์์ ์ถ๋ ฅ 3
1 1 1
1 1 2
1 1 3
1 2 2
1 2 3
1 3 3
2 2 2
2 2 3
2 3 3
3 3 3
function dfs(N, M, arr) {
if(arr.length === M) return arr.join(" ")
const results = []
for(let i = 1 ; i <= N ; i++) {
if(i < arr.at(-1)) continue
const res = dfs(N, M, [...arr, i])
results.push(res)
}
return results.join("\n")
}
const [N, M] = require('fs').readFileSync('/dev/stdin').toString().trim().split(" ").map(Number)
const result = dfs(N, M, [])
console.log(result)