#include<bits/stdc++.h>
using namespace std;
const int N=2*1e2;
const int M=2000+5;
const long long mod=998244353;
#define int long long
int n,m;
int num[N][M],tot[N];
int f[N][2*N];
int g[N][N*2];
void rread()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>num[i][j];
tot[i]+=num[i][j];
tot[i]%=mod;
}
}
return;
}
void solve()
{
int ans=0;
f[0][0]=1;
for(int i=1;i<=n;i++){
f[i][0]=1;
for(int j=1;j<=i;j++){
f[i][j]=f[i-1][j-1]*tot[i]%mod;
f[i][j]+=f[i-1][j];
f[i][j]%=mod;
}
}
for(int j=1;j<=n;j++){
ans+=f[n][j];
ans%=mod;
}
for(int k=1;k<=m;k++){
memset(g,0,sizeof g);
g[0][n]=1;
for(int i=1;i<=n;i++){
for(int j=n-i+1;j<=n+i-1;j++){
g[i][j-1]+=g[i-1][j]*((mod+tot[i]-num[i][k])%mod)%mod;
g[i][j-1]%=mod;
g[i][j]+=g[i-1][j];
g[i][j]%=mod;
g[i][j+1]+=g[i-1][j]*num[i][k]%mod;
g[i][j+1]%=mod;
}
}
}
for(int j=n+1;j<=n+n;j++){
ans+=(mod-g[n][j])%mod;
ans%=mod;
}
cout<<ans;
}
signed main()
{
rread();
solve();
return 0;
}