#include<bits/stdc++.h>
using namespace std;
#define esp 1.0E-12
double q[3005][3005],p[3005][3005],dp[3005][3005],sc[3005][3005];
int n,m,len[3005];
void update(int t,double prob)
{
int i;
double isp=0.0;
for(i=len[t];i>=0;i--)
{
q[t][i+1]+=q[t][i]*prob;
q[t][i]*=(1.0-prob);
if (q[t][i]<1.0E-50) q[t][i]=0.0;
}
if (isp+q[t][len[t]+1]<esp)
isp+=q[t][len[t]+1];
else len[t]++;
}
int main(void)
{
int tmp,i,j,k;
ifstream fi ("MIDAU.inp");
ofstream fo ("MIDAU.out");
fi>>n>>m;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
fi>>tmp;
p[j][i]=tmp/1000.0;
}
for (i=0;i<m;i++)
{
q[i][0]=1.0;
for (j=0;j<n;j++) update(i,p[i][j]);
}
for (i=0;i<m;i++)
{
double ex=0.0;
for(j=0;j<len[i]+1;j++) ex+=q[i][j]*j;
sc[i][len[i]]=ex;
double sp=0.0;
for(j=len[i]-1;j>=0;j--) sp+=q[i][j+1];
sc[i][j]=sc[i][j+1]-sp;
}
for (i=0;i<m;i++)
for (j=0;j<n+1;j++)
for (k=0;k<len[i]+1;k++)
if ((j+k)<=n ) dp[i+1][j+k]=max(dp[i+1][j+k],dp[i][j]+sc[i][k]);
double ans=0.0;
for (i=0;i<n+1;i++)
ans=max(ans,dp[m][i]);
fo<<ans;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBlc3AgMS4wRS0xMgpkb3VibGUgcVszMDA1XVszMDA1XSxwWzMwMDVdWzMwMDVdLGRwWzMwMDVdWzMwMDVdLHNjWzMwMDVdWzMwMDVdOwppbnQgbixtLGxlblszMDA1XTsKdm9pZCB1cGRhdGUoaW50IHQsZG91YmxlIHByb2IpCnsKICAgIGludCBpOwogICAgZG91YmxlIGlzcD0wLjA7CiAgICBmb3IoaT1sZW5bdF07aT49MDtpLS0pCiAgICB7CiAgICAgICAgcVt0XVtpKzFdKz1xW3RdW2ldKnByb2I7CiAgICAgICAgcVt0XVtpXSo9KDEuMC1wcm9iKTsKICAgICAgICBpZiAocVt0XVtpXTwxLjBFLTUwKSBxW3RdW2ldPTAuMDsKICAgIH0KICAgIGlmIChpc3ArcVt0XVtsZW5bdF0rMV08ZXNwKQogICAgICAgIGlzcCs9cVt0XVtsZW5bdF0rMV07CiAgICBlbHNlIGxlblt0XSsrOwp9CmludCBtYWluKHZvaWQpCnsKICAgIGludCB0bXAsaSxqLGs7CiAgICBpZnN0cmVhbSBmaSAoIk1JREFVLmlucCIpOwogICAgb2ZzdHJlYW0gZm8gKCJNSURBVS5vdXQiKTsKICAgIGZpPj5uPj5tOwogICAgZm9yIChpPTA7aTxuO2krKykKICAgICAgICBmb3IgKGo9MDtqPG07aisrKQogICAgewogICAgICAgIGZpPj50bXA7CiAgICAgICAgcFtqXVtpXT10bXAvMTAwMC4wOwogICAgfQogICAgZm9yIChpPTA7aTxtO2krKykKICAgIHsKICAgICAgICBxW2ldWzBdPTEuMDsKICAgICAgICBmb3IgKGo9MDtqPG47aisrKSB1cGRhdGUoaSxwW2ldW2pdKTsKICAgIH0KICAgIGZvciAoaT0wO2k8bTtpKyspCiAgICB7CiAgICAgICAgZG91YmxlIGV4PTAuMDsKICAgICAgICBmb3Ioaj0wO2o8bGVuW2ldKzE7aisrKSBleCs9cVtpXVtqXSpqOwogICAgICAgIHNjW2ldW2xlbltpXV09ZXg7CiAgICAgICAgZG91YmxlIHNwPTAuMDsKICAgICAgICBmb3Ioaj1sZW5baV0tMTtqPj0wO2otLSkgc3ArPXFbaV1baisxXTsKICAgICAgICBzY1tpXVtqXT1zY1tpXVtqKzFdLXNwOwogICAgfQogICAgZm9yIChpPTA7aTxtO2krKykKICAgICAgICBmb3IgKGo9MDtqPG4rMTtqKyspCiAgICAgICAgICAgIGZvciAoaz0wO2s8bGVuW2ldKzE7aysrKQogICAgICAgICAgICBpZiAoKGorayk8PW4gKSBkcFtpKzFdW2ora109bWF4KGRwW2krMV1baitrXSxkcFtpXVtqXStzY1tpXVtrXSk7CiAgICBkb3VibGUgYW5zPTAuMDsKICAgIGZvciAoaT0wO2k8bisxO2krKykKICAgICAgICBhbnM9bWF4KGFucyxkcFttXVtpXSk7CiAgICBmbzw8YW5zOwp9Cg==