# Author : Manfred Scheucher # Date : Jul 25 2015 S__ = dict() def S_(m,n): if n < m: return 0 if n == m: return 1 if n > m: j=n-m return sum(S(m,i) for i in [(j-1)..(m+j-1)])+sum(S(m,i)*S(m,m+j-2-i) for i in [0..(m+j-2)]) def S(m,n): if (m,n) not in S__: S__[(m,n)]=S_(m,n) return S__[(m,n)] from sys import argv N = int(argv[1]) c = 0 f = open("b.txt","w") for n in [0..N]: for m in [0..n]: s = S(m,n) f.write(str(c)+" "+str(s)+"\n") c+=1 print "\t",s, print