#include<iostream>
#include<algorithm>
using namespace std;
double a[1001][1001],b[1001][1001];
struct hang
{
double ar;
double le;
double zong;
}h[1001];
int ansa[1000001];
int ansb[1000001];
int main()
{
int n,m;
cin >> n >> m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin >> a[i][j];
h[i].ar+=a[i][j];
}
}
for(int i=1;i<=n;i++)
{
double ar=h[i].ar;
for(int j=1;j<=m;j++)
{
h[i].ar+=a[i][j]-ar/m;
}
h[i].ar=h[i].ar/m;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin >> b[i][j];
h[i].le+=b[i][j];
}
}
for(int i=1;i<=n;i++)
{
double le=h[i].le;
for(int j=1;j<=m;j++)
{
h[i].le+=b[i][j]-le/m;
}
h[i].le=h[i].le/m;
h[i].zong=h[i].le+h[i].ar;
}
int ans=0;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
int t1=0,t2=0;
if(h[i].zong>h[j].zong)
{
swap(h[i].zong,h[j].zong);
ansa[++ans]=i;
ansb[ans]=j;
}
}
}
cout << ans << endl;
for(int i=1;i<=ans;i++)
{
cout << ansa[i] << ' ' << ansb[i] << endl;
}
return 0;
}