use std::cmp::max;

fn main() {
    let (n, _m): (usize, usize) = {
        let mut buf = String::new();
        std::io::stdin().read_line(&mut buf).unwrap();
        let mut iter = buf.split_whitespace();
        (
            iter.next().unwrap().parse().unwrap(),
            iter.next().unwrap().parse().unwrap(),
        )
    };

    let mut a: Vec<Vec<i64>> = Vec::with_capacity(n);
    for _ in 0..n {
        let mut buf = String::new();
        std::io::stdin().read_line(&mut buf).unwrap();
        let iter = buf.split_whitespace();
        a.push(iter.map(|x| x.parse().unwrap()).collect())
    }

    let (mut odd, mut even) = (0, 0);
    for i in 0..n {
        let sum: i64 = a[i].iter().sum();
        odd = max(odd, even + sum);
        even = max(even, odd - sum);
    }

    println!("{}", odd);
}