module Main; import CPLib.IO; main : IO () = ( let n = *read_i; let m = *read_i; // iが宝箱、jが宝石 let aij = fill(n, fill(m, 0)); let aij = *range(0, n).fold_m(aij, |i, aij| range(0, m).fold_m(aij, |j, aij| let a = *read_i; let aij = aij[i][j].iset(a); aij.pure ) ); let jewel_num = fill(m, 0); let jewel_num = range(0, n).fold(jewel_num, |i, jewel_num| range(0, m).fold(jewel_num, |j, jewel_num| let a = aij[i][j].iget; jewel_num[j].imod(add(a)) ) ); let gain = fill(n, 0); let gain = range(0, n).fold(gain, |i, gain| range(0, m).fold(gain, |j, gain| let a = aij[i][j].iget; gain[i].imod(add(a * jewel_num[j].iget)) ) ); let gain = gain.sort; let y = range(0, n/2).map(|i| gain.@(2*i)).sum; let x = range(0, n/2).map(|i| gain.@(2*i+1)).sum; let ans = x - y; ans.to_string.println;; pure() );