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

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    }
}
	 import java.util.Scanner; Scanner java.util public class Main{
    public static void main(String args[]){
	Scanner in =new Scanner(System.in);

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    }
} Main public static void main(String args[]){
	Scanner in =new Scanner(System.in);

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    } main {
	Scanner in =new Scanner(System.in);

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    } Scanner in =new Scanner(System.in); in new Scanner(System.in) int r r c; c r = in.nextInt() r in.nextInt() in.nextInt in c = in.nextInt() c in.nextInt() in.nextInt in int[][] table = new int[r+1][c+1]; table new int[r+1][c+1] r+1 r 1 c+1 c 1 for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	} int i=0; int i=0; i 0 i<r i r i++ i++ i {
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	} {
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	} for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    } int j=0; int j=0; j 0 j<c j c j++ j++ j {
		table[i][j] = in.nextInt();
	    } {
		table[i][j] = in.nextInt();
	    } table[i][j] = in.nextInt() table[i][j] table[i] table i j in.nextInt() in.nextInt in for(int i=0;i<r;i++){
	    table[i][c]=0;
	} int i=0; int i=0; i 0 i<r i r i++ i++ i {
	    table[i][c]=0;
	} {
	    table[i][c]=0;
	} table[i][c]=0 table[i][c] table[i] table i c 0 for(int j=0;j<c;j++){
	    table[r][j]=0;
	} int j=0; int j=0; j 0 j<c j c j++ j++ j {
	    table[r][j]=0;
	} {
	    table[r][j]=0;
	} table[r][j]=0 table[r][j] table[r] table r j 0 table[r][c]=0 table[r][c] table[r] table r c 0 for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	} int i=0; int i=0; i 0 i<r i r i++ i++ i {
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	} {
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	} for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    } int j=0; int j=0; j 0 j<c j c j++ j++ j {
	        table[i][c]+=table[i][j];
	    } {
	        table[i][c]+=table[i][j];
	    } table[i][c]+=table[i][j] table[i][c] table[i] table i c table[i][j] table[i] table i j for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	} int j=0; int j=0; j 0 j<c j c j++ j++ j {
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	} {
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	} for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    } int i=0; int i=0; i 0 i<r i r i++ i++ i {
	        table[r][j]+=table[i][j];
	    } {
	        table[r][j]+=table[i][j];
	    } table[r][j]+=table[i][j] table[r][j] table[r] table r j table[i][j] table[i] table i j for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	} int i=0; int i=0; i 0 i<r i r i++ i++ i {
	    table[r][c]+=table[i][c];
	} {
	    table[r][c]+=table[i][c];
	} table[r][c]+=table[i][c] table[r][c] table[r] table r c table[i][c] table[i] table i c for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	} int i=0; int i=0; i 0 i<=r i r i++ i++ i {
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	} {
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	} for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    } int j=0; int j=0; j 0 j<=c j c j++ j++ j {
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    } {
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    } System.out.print(table[i][j]) System.out.print System.out System System.out table[i][j] table[i] table i j if(j!=c)System.out.print(" "); j!=c j c System.out.print(" ") System.out.print System.out System System.out " " System.out.println() System.out.println System.out System System.out String args[] args public class Main{
    public static void main(String args[]){
	Scanner in =new Scanner(System.in);

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    }
} public class Main{
    public static void main(String args[]){
	Scanner in =new Scanner(System.in);

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    }
} Main
import java.util.Scanner;
public class Main{
    public static void main(String args[]){
	Scanner in =new Scanner(System.in);

	int r,c;

	r = in.nextInt();
	c = in.nextInt();

	int[][] table = new int[r+1][c+1];

	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
		table[i][j] = in.nextInt();
	    }
	}

	//0で初期化
	for(int i=0;i<r;i++){
	    table[i][c]=0;
	}
	for(int j=0;j<c;j++){
	    table[r][j]=0;
	}
	table[r][c]=0;
	
	//行の合計
	for(int i=0;i<r;i++){
	    for(int j=0;j<c;j++){
	        table[i][c]+=table[i][j];
	    }
	}
	//列の合計
	for(int j=0;j<c;j++){
	    for(int i=0;i<r;i++){
	        table[r][j]+=table[i][j];
	    }
	}
	//全要素の合計
	for(int i=0;i<r;i++){
	    table[r][c]+=table[i][c];
	}


	for(int i=0;i<=r;i++){
	    for(int j=0;j<=c;j++){
		System.out.print(table[i][j]);
		if(j!=c)System.out.print(" ");
	    }
	    System.out.println();
	}
    }
}
	
