#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
int i,j;
double*v1=new double[n];//记录学生平均分
double*v2=new double[m];//记录每科平均分
double**a=new double*[n];//根据学生人数和科目数开辟动态二维数组
for(i=0;i<n;i++)
a[i]=new double[m];
for(i=0;i<n;i++)
{
double s1=0;//记录总分,此程序中要写在循环内以保证每个人的总分都初始为0
for(j=0;j<m;j++)
{
cin>>a[i][j];
s1=s1+a[i][j];
}
v1[i]=s1/m;
}
for(i=0;i<m;i++)
{
double s2=0;
for(j=0;j<n;j++)
s2=s2+a[j][i];
v2[i]=s2/n;
}
bool f1=1,f2=1;//用f1、f2控制每行的最后一个空格不输出
for(i=0;i<n;i++)
{
if(f1)
{
f1=0;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<v1[i];
}
else
cout<<' '<<v1[i];
}
cout<<endl;
for(i=0;i<m;i++)
{
if(f2)
{
f2=0;
cout<<v2[i];
}
else
cout<<' '<<v2[i];
}
cout<<endl;
double ss=0;//记录每科分数都不小于均分的人数
for(i=0;i<n;i++)//计算每科分数都不小于均分的人数
{
bool flag=1;
for(j=0;j<m;j++)
{
if(a[i][j]<v2[j])
flag=0;
}
if(flag)
ss++;
}
cout<<resetiosflags(ios_base::floatfield)<<ss<<endl;//输出人数时不再保留小数
delete []v1;//释放动态开辟的空间
delete []v2;
for(i=0;i<n;i++)
{
delete []a[i];
a[i]=NULL;
}
delete []a;
a=NULL;
cout<<'\n';//每个实例后面有一个空行
}
return 0;
}