N = 2
M = 1
K = 3
count = [0] * (N+1)
prev = [0] * (N+1)
count[0] = 1 # empty set
for i in range(K):
# move count to prev
for index in range(N+1):
prev[index] = count[index]
count[index] = 0
# calculate new counts
for prevSum in range(N+1):
for value in range(M+1):
newSum = min(N, prevSum+value)
count[newSum] += prev[prevSum]
ans = (count[N] / pow(M+1, K))
print(ans)
TiA9IDIKTSA9IDEKSyA9IDMKCmNvdW50ID0gWzBdICogKE4rMSkKcHJldiA9IFswXSAqIChOKzEpCgpjb3VudFswXSA9IDEgIyBlbXB0eSBzZXQKCmZvciBpIGluIHJhbmdlKEspOgoJIyBtb3ZlIGNvdW50IHRvIHByZXYKCWZvciBpbmRleCBpbiByYW5nZShOKzEpOgoJCXByZXZbaW5kZXhdID0gY291bnRbaW5kZXhdCgkJY291bnRbaW5kZXhdID0gMAoJCgkjIGNhbGN1bGF0ZSBuZXcgY291bnRzCglmb3IgcHJldlN1bSBpbiByYW5nZShOKzEpOgoJCWZvciB2YWx1ZSBpbiByYW5nZShNKzEpOgoJCQluZXdTdW0gPSBtaW4oTiwgcHJldlN1bSt2YWx1ZSkKCQkJY291bnRbbmV3U3VtXSArPSBwcmV2W3ByZXZTdW1dCgkJCQphbnMgPSAoY291bnRbTl0gLyBwb3coTSsxLCBLKSkKcHJpbnQoYW5zKQo=