n=gets.to_i if n==0 puts "1 0" elsif n>31 puts "0 0" else dp = Array.new(31).map{Array.new(31,0)} dp2= Array.new(31).map{Array.new(31,0)} ans=0 r=1 31.times{|i| dp[0][i]=1 dp2[0][i]=r ans+=r r*=2 } if n==1 puts [31 ,ans]*" " else (n-1).times{|p1| r=1 31.times{|p2| r2=r*2 ((p2+1)..(30)).each{|p3| dp[p1+1][p3]+=dp[p1][p2] dp2[p1+1][p3]+=dp[p1][p2]*r2+dp2[p1][p2] r2*=2 } r=r*2 } } ans1=dp[n-1].inject{|sum,e| sum+e } ans2=dp2[n-1].inject{|sum,e| sum+e } puts [ans1,ans2]*" " end end