n, m = gets.split(" ").map{|s| s.to_i} a = [] n.times { a << gets.split(" ").map{|s| s.to_i}.sum } dp = Array.new(n+1) {Array.new(n+1, -Float::INFINITY)} dp[0][0] = 0 1.upto(n) {|i| dp[i][0] = 0 1.upto(n) {|j| dp[i][j] = [dp[i-1][j], dp[i-1][j-1] + (j % 2 == 1 ? a[i-1] : -a[i-1])].max } } puts dp[n].max