import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strRC = br.readLine().split(" ");
		ArrayList<Integer> niKaiso = new ArrayList<Integer>();
		ArrayList<ArrayList<Integer>> itiKaiso = new ArrayList<ArrayList<Integer>>();
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		}
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strRC = br.readLine().split(" ");
		ArrayList<Integer> niKaiso = new ArrayList<Integer>();
		ArrayList<ArrayList<Integer>> itiKaiso = new ArrayList<ArrayList<Integer>>();
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		}
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		}
	}
} Main public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strRC = br.readLine().split(" ");
		ArrayList<Integer> niKaiso = new ArrayList<Integer>();
		ArrayList<ArrayList<Integer>> itiKaiso = new ArrayList<ArrayList<Integer>>();
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		}
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		}
	} main {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strRC = br.readLine().split(" ");
		ArrayList<Integer> niKaiso = new ArrayList<Integer>();
		ArrayList<ArrayList<Integer>> itiKaiso = new ArrayList<ArrayList<Integer>>();
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		}
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		}
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] strRC = br.readLine().split(" "); strRC br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " ArrayList<Integer> niKaiso = new ArrayList<Integer>(); niKaiso new ArrayList<Integer>() ArrayList<ArrayList<Integer>> itiKaiso = new ArrayList<ArrayList<Integer>>(); itiKaiso new ArrayList<ArrayList<Integer>>() for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		} int i = 0; int i = 0; i 0 i < Integer.parseInt(strRC[0]) + 1 i Integer.parseInt(strRC[0]) + 1 Integer.parseInt(strRC[0]) Integer.parseInt Integer strRC[0] strRC 0 1 i++ i++ i {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		} {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		} if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			} i == Integer.parseInt(strRC[0]) i Integer.parseInt(strRC[0]) Integer.parseInt Integer strRC[0] strRC 0 {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				} int j = 0; int j = 0; j 0 j < Integer.parseInt(strRC[1]) + 1 j Integer.parseInt(strRC[1]) + 1 Integer.parseInt(strRC[1]) Integer.parseInt Integer strRC[1] strRC 1 1 j++ j++ j {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				} {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				} Integer sum = 0; sum 0 for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					} int k = 0; int k = 0; k 0 k < Integer.parseInt(strRC[0]) k Integer.parseInt(strRC[0]) Integer.parseInt Integer strRC[0] strRC 0 k++ k++ k {
						sum += itiKaiso.get(k).get(j);
					} {
						sum += itiKaiso.get(k).get(j);
					} sum += itiKaiso.get(k).get(j) sum itiKaiso.get(k).get(j) itiKaiso.get(k).get itiKaiso.get(k) itiKaiso.get itiKaiso k j niKaiso.add(sum) niKaiso.add niKaiso sum itiKaiso.add(niKaiso) itiKaiso.add itiKaiso niKaiso {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			} String line = br.readLine(); line br.readLine() br.readLine br String[] lineArrays = line.split(" "); lineArrays line.split(" ") line.split line " " for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				} int j = 0; int j = 0; j 0 j < Integer.parseInt(strRC[1]) + 1 j Integer.parseInt(strRC[1]) + 1 Integer.parseInt(strRC[1]) Integer.parseInt Integer strRC[1] strRC 1 1 j++ j++ j {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				} {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				} if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					} j == Integer.parseInt(strRC[1]) j Integer.parseInt(strRC[1]) Integer.parseInt Integer strRC[1] strRC 1 {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} Integer sum = 0; sum 0 for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						} int k = 0; int k = 0; k 0 k < niKaiso.size() k niKaiso.size() niKaiso.size niKaiso k++ k++ k {
							sum += niKaiso.get(k);
						} {
							sum += niKaiso.get(k);
						} sum += niKaiso.get(k) sum niKaiso.get(k) niKaiso.get niKaiso k niKaiso.add(sum) niKaiso.add niKaiso sum {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					} niKaiso.add(Integer.parseInt(lineArrays[j])) niKaiso.add niKaiso Integer.parseInt(lineArrays[j]) Integer.parseInt Integer lineArrays[j] lineArrays j itiKaiso.add(niKaiso) itiKaiso.add itiKaiso niKaiso niKaiso = new ArrayList<Integer>() niKaiso new ArrayList<Integer>() for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		} int i = 0; int i = 0; i 0 i < Integer.parseInt(strRC[0]) + 1 i Integer.parseInt(strRC[0]) + 1 Integer.parseInt(strRC[0]) Integer.parseInt Integer strRC[0] strRC 0 1 i++ i++ i {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		} {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		} for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			} int j = 0; int j = 0; j 0 j < Integer.parseInt(strRC[1]) + 1 j Integer.parseInt(strRC[1]) + 1 Integer.parseInt(strRC[1]) Integer.parseInt Integer strRC[1] strRC 1 1 j++ j++ j {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			} {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			} if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				} j == Integer.parseInt(strRC[1]) j Integer.parseInt(strRC[1]) Integer.parseInt Integer strRC[1] strRC 1 {
					System.out.println(itiKaiso.get(i).get(j));
				} System.out.println(itiKaiso.get(i).get(j)) System.out.println System.out System System.out itiKaiso.get(i).get(j) itiKaiso.get(i).get itiKaiso.get(i) itiKaiso.get itiKaiso i j {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				} System.out.print(itiKaiso.get(i).get(j) + " ") System.out.print System.out System System.out itiKaiso.get(i).get(j) + " " itiKaiso.get(i).get(j) itiKaiso.get(i).get itiKaiso.get(i) itiKaiso.get itiKaiso i j " " String[] args args
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strRC = br.readLine().split(" ");
		ArrayList<Integer> niKaiso = new ArrayList<Integer>();
		ArrayList<ArrayList<Integer>> itiKaiso = new ArrayList<ArrayList<Integer>>();
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			if (i == Integer.parseInt(strRC[0])) {
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					Integer sum = 0;
					for (int k = 0; k < Integer.parseInt(strRC[0]); k++) {
						sum += itiKaiso.get(k).get(j);
					}
					niKaiso.add(sum);
				}
				itiKaiso.add(niKaiso);
			} else {
				String line = br.readLine();
				String[] lineArrays = line.split(" ");
				for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
					if (j == Integer.parseInt(strRC[1])) {
						Integer sum = 0;
						for (int k = 0; k < niKaiso.size(); k++) {
							sum += niKaiso.get(k);
						}
						niKaiso.add(sum);
					} else {
						niKaiso.add(Integer.parseInt(lineArrays[j]));
					}
				}
				itiKaiso.add(niKaiso);
				niKaiso = new ArrayList<Integer>();
			}
		}
		for (int i = 0; i < Integer.parseInt(strRC[0]) + 1; i++) {
			for (int j = 0; j < Integer.parseInt(strRC[1]) + 1; j++) {
				if (j == Integer.parseInt(strRC[1])) {
					System.out.println(itiKaiso.get(i).get(j));
				} else {
					System.out.print(itiKaiso.get(i).get(j) + " ");
				}
			}
		}
	}
}