def f(a,b) if b==nil return true end a.size.times{|i| return a[i]=dp.size dp[m][1]=[m,[m]] } (1..(k-1)).each{|i| d.times{|j| if dp[j][i]==[] next end e0=dp[j][i][0] e1=dp[j][i][1] ((e1.last+1)..n).each{|add| e2=e0+add if dp.size<=e2 break end e3=Marshal.load(Marshal.dump(e1)) e3<