A:=proc(P, N)return 1+add(add(binomial(N, n)*binomial(P, p)*K(p, n), p=1..P), n=1..N):end:
K:=proc(p, n)global k:if(not type(k[p, n], integer))then k[p, n]:=add(T(p, n, i), i=1..n):fi:return k[p, n]:end:
T:=proc(p, n, i)global t:if(not type(t[p, n, i], integer))then if(p=1 and i=1)then t[p, n, i]:=1:elif(p=1)then t[p, n, i]:=0:else t[p, n, i]:=add(add(T(p-1, j, k), k=1..i), j=i..n):fi:fi:return t[p, n, i]:end: