종이에 적다보니 dp 문제인줄 알고 룰을 찾아보려 했지만 못찾았습니다.
구글링 해보니 룰이 대충 맞는데 H와 W를 분리해서 2차원 리스트를 만들어서 쓰다보니 룰을 보고 그걸 바탕으로 코드를 만들었다.
import sys
from itertools import permutations
dp = ((0)*31 for i in range(31))
for i in range(1,31):
dp(0)(i) = 1
for i in range(1,31):
for j in range(i,31):
dp(i)(j) += dp(i-1)(j) + dp(i)(j-1)
while True:
k = int(sys.stdin.readline())
if k == 0:
break
# 즉, 앞에서 부터 1 의 개수가 0 의 개수 이상이여야
print(dp(k)(k))