//7-C

import java.util.Scanner;

class Main {
    public static void main(String [] args){
    	Scanner sc = new Scanner(System.in);

        int r = sc.nextInt();//行
        int c = sc.nextInt();//列
        
        int[][] num = new int[r+1][c+1];//配列宣言 //ok
        
        //配列の中に整数代入
        for( int i = 0 ; i < r ; i++ ){
        	for ( int j = 0 ; j < c ; j++ ){
        		
        		num[i][j] = sc.nextInt();
        		
        		num[r][j] = num[r][j] + num[i][j];
        		num[i][c] = num[i][c] + num[i][j];
        		
        	}
        }
        
        //総合計入力
    	for ( int j = 0 ; j < c ; j++ ){
    		
    		num[r][c] = num[r][c] + num[r][j];
    		
    	}
        	
        
        //配列の中身と合計を出力
       for( int i = 0 ; i < r+1 ; i++ ){
        	for ( int j = 0 ; j < c+1 ; j++ ){
        		
        		if(j == 0){
        			System.out.print(num[i][j]);
        		}else{
        			System.out.print(" " + num[i][j]);
        		}
        		
        	}
        	System.out.println();
        }
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz