//??¨?¨????????????°??????
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		
		//???????????????????????????????????°??¨?????°?????\???
		String[] matrixStr = br.readLine().split(" ");		//??????????????°??¨?????°?????\??????matrixStr
		int rowNum = Integer.parseInt(matrixStr[0]);		//?????°rowNum
		int colNum = Integer.parseInt(matrixStr[1]);		//?????°colNum
		int[][] resultArray = new int[rowNum+1][colNum+1];
		int lastNum = 0;
		
		//?????????????´??????????
		for(int i=0; i<rowNum; i++) {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		}
		
		for(int j=0; j<colNum; j++) {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		}
			sb.append(lastNum + "\n");
			System.out.print(sb.toString());
	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		
		//???????????????????????????????????°??¨?????°?????\???
		String[] matrixStr = br.readLine().split(" ");		//??????????????°??¨?????°?????\??????matrixStr
		int rowNum = Integer.parseInt(matrixStr[0]);		//?????°rowNum
		int colNum = Integer.parseInt(matrixStr[1]);		//?????°colNum
		int[][] resultArray = new int[rowNum+1][colNum+1];
		int lastNum = 0;
		
		//?????????????´??????????
		for(int i=0; i<rowNum; i++) {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		}
		
		for(int j=0; j<colNum; j++) {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		}
			sb.append(lastNum + "\n");
			System.out.print(sb.toString());
	}

} Main public static void main(String[] args) throws IOException{
		BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		
		//???????????????????????????????????°??¨?????°?????\???
		String[] matrixStr = br.readLine().split(" ");		//??????????????°??¨?????°?????\??????matrixStr
		int rowNum = Integer.parseInt(matrixStr[0]);		//?????°rowNum
		int colNum = Integer.parseInt(matrixStr[1]);		//?????°colNum
		int[][] resultArray = new int[rowNum+1][colNum+1];
		int lastNum = 0;
		
		//?????????????´??????????
		for(int i=0; i<rowNum; i++) {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		}
		
		for(int j=0; j<colNum; j++) {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		}
			sb.append(lastNum + "\n");
			System.out.print(sb.toString());
	} main {
		BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		
		//???????????????????????????????????°??¨?????°?????\???
		String[] matrixStr = br.readLine().split(" ");		//??????????????°??¨?????°?????\??????matrixStr
		int rowNum = Integer.parseInt(matrixStr[0]);		//?????°rowNum
		int colNum = Integer.parseInt(matrixStr[1]);		//?????°colNum
		int[][] resultArray = new int[rowNum+1][colNum+1];
		int lastNum = 0;
		
		//?????????????´??????????
		for(int i=0; i<rowNum; i++) {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		}
		
		for(int j=0; j<colNum; j++) {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		}
			sb.append(lastNum + "\n");
			System.out.print(sb.toString());
	} BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) StringBuilder sb = new StringBuilder(); sb new StringBuilder() String[] matrixStr = br.readLine().split(" "); matrixStr br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int rowNum = Integer.parseInt(matrixStr[0]); rowNum Integer.parseInt(matrixStr[0]) Integer.parseInt Integer matrixStr[0] matrixStr 0 int colNum = Integer.parseInt(matrixStr[1]); colNum Integer.parseInt(matrixStr[1]) Integer.parseInt Integer matrixStr[1] matrixStr 1 int[][] resultArray = new int[rowNum+1][colNum+1]; resultArray new int[rowNum+1][colNum+1] rowNum+1 rowNum 1 colNum+1 colNum 1 int lastNum = 0; lastNum 0 for(int i=0; i<rowNum; i++) {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		} int i=0; int i=0; i 0 i<rowNum i rowNum i++ i++ i {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		} {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		} String[] inputStr = br.readLine().split(" "); inputStr br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			} int j=0; int j=0; j 0 j<colNum j colNum j++ j++ j {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			} {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			} resultArray[i][j] = Integer.parseInt(inputStr[j]) resultArray[i][j] resultArray[i] resultArray i j Integer.parseInt(inputStr[j]) Integer.parseInt Integer inputStr[j] inputStr j resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j] resultArray[i][colNum] resultArray[i] resultArray i colNum resultArray[i][colNum] + resultArray[i][j] resultArray[i][colNum] resultArray[i] resultArray i colNum resultArray[i][j] resultArray[i] resultArray i j sb.append(resultArray[i][j] + " ") sb.append sb resultArray[i][j] + " " resultArray[i][j] resultArray[i] resultArray i j " " sb.append(resultArray[i][colNum] + "\n") sb.append sb resultArray[i][colNum] + "\n" resultArray[i][colNum] resultArray[i] resultArray i colNum "\n" for(int j=0; j<colNum; j++) {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		} int j=0; int j=0; j 0 j<colNum j colNum j++ j++ j {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		} {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		} for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			} int i=0; int i=0; i 0 i<rowNum i rowNum i++ i++ i {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			} {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			} resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j] resultArray[rowNum][j] resultArray[rowNum] resultArray rowNum j resultArray[rowNum][j] + resultArray[i][j] resultArray[rowNum][j] resultArray[rowNum] resultArray rowNum j resultArray[i][j] resultArray[i] resultArray i j sb.append(resultArray[rowNum][j] + " ") sb.append sb resultArray[rowNum][j] + " " resultArray[rowNum][j] resultArray[rowNum] resultArray rowNum j " " lastNum = lastNum + resultArray[rowNum][j] lastNum lastNum + resultArray[rowNum][j] lastNum resultArray[rowNum][j] resultArray[rowNum] resultArray rowNum j sb.append(lastNum + "\n") sb.append sb lastNum + "\n" lastNum "\n" System.out.print(sb.toString()) System.out.print System.out System System.out sb.toString() sb.toString sb String[] args args
//??¨?¨????????????°??????
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		
		//???????????????????????????????????°??¨?????°?????\???
		String[] matrixStr = br.readLine().split(" ");		//??????????????°??¨?????°?????\??????matrixStr
		int rowNum = Integer.parseInt(matrixStr[0]);		//?????°rowNum
		int colNum = Integer.parseInt(matrixStr[1]);		//?????°colNum
		int[][] resultArray = new int[rowNum+1][colNum+1];
		int lastNum = 0;
		
		//?????????????´??????????
		for(int i=0; i<rowNum; i++) {						//?????°rowNum?????°??????
			String[] inputStr = br.readLine().split(" ");	//????´?????????????inputStr
		
			for(int j=0; j<colNum; j++) {					//??????????´???????
				resultArray[i][j] = Integer.parseInt(inputStr[j]);
				resultArray[i][colNum] = resultArray[i][colNum] + resultArray[i][j];
					sb.append(resultArray[i][j] + " ");		//
			}
			sb.append(resultArray[i][colNum] + "\n");
		}
		
		for(int j=0; j<colNum; j++) {
			for(int i=0; i<rowNum; i++) {
				resultArray[rowNum][j] = resultArray[rowNum][j] + resultArray[i][j];
			}

				sb.append(resultArray[rowNum][j] + " ");

			lastNum = lastNum + resultArray[rowNum][j];
		}
			sb.append(lastNum + "\n");
			System.out.print(sb.toString());
	}

}