n,m=gets.split(" ").map{|e| e.to_i} xs=gets.split(" ").map{|e| e.to_i} rr=[] (n+4).times{|i| rr[i]=[] (n+4).times{|j| rr[i][j]=0 } } rr[0][0]=1 ans=0 mod=10**9+7 0.upto(n){|i| 0.upto(n){|j| p1=i+j break if n<=p1 if i==0 || p1==0 || xs[i-1]<xs[p1] then rr[p1+1][j]=(rr[p1+1][j]+rr[i][j])%mod end if j==0 || p1==0 || xs[j-1]<xs[p1] then rr[i][p1+1]=(rr[i][p1+1]+rr[i][j])%mod end } } rr.each{|e| p e } puts ans
6 6 1 3 4 2 6 5
[1, 1, 1, 1, 0, 0, 0, 0, 0, 0] [1, 0, 1, 0, 0, 0, 0, 0, 0, 0] [1, 1, 0, 1, 1, 0, 1, 0, 0, 0] [1, 0, 1, 0, 1, 0, 1, 0, 0, 0] [0, 0, 1, 1, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 1, 1, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 0