import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int m = sc.nextInt();
double avgSubject[]=new double[m];
int arr[][] = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arr[i][j] = sc.nextInt();
}
}
avgStudent(n,m,arr);
avgSubject=avgSubject(n,m,arr);
sumStudent(n,m,avgSubject,arr);
}
}
public static void avgStudent(int n, int m, int a[][]) {
double sum1 = 0;
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
sum1 += a[i][j];
count++;
if (count == m && i != n - 1) {
System.out.printf("%.2f" + " ", sum1 / m);
sum1 = 0;
count = 0;
} else if (count == m && i == n - 1) {
System.out.printf("%.2f%n", sum1 / m);
}
}
}
}
public static double[] avgSubject(int n, int m, int a[][]) {
double sum2 = 0;
double avSubject[] = new double[m];
int count = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
sum2 += a[j][i];
count++;
if(count==n){
avSubject[i]+=sum2/n;
if(i==0){
System.out.printf("%.2f", avSubject[i]);
}
else {
System.out.printf(" %.2f", avSubject[i]);
}
sum2=0;
count=0;
}
}
}
System.out.println();
return avSubject;
}
public static void sumStudent(int n, int m, double avsubject[], int a[][]) {
int sum = 0;
for (int i = 0; i < n; i++) {
boolean flag = true;
for (int j = 0; j < m; j++) {
if (a[i][j] < avsubject[j]) {
flag = false;
}
}
if (flag == true) {
sum++;
}
}
System.out.println(sum);
System.out.println("");
}
}