#include <iostream>
using namespace std;
int L,C,V;
void citmat(int M[],int &n,int &m,int &k)
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>M[i][j];
}
int sumpelin(int M,int m)
{
int s=0;
for (int i=1;i<=m;i++)
s=s+M[i];
return s;
}
void elemminmod(int M,int m,int z,int &c)
{
int s=1000000,l;
for (int i=1;i<=m;i++)
if (M[i]<s) s=M[i],l=i;
++c;
C©=l;
V©=M[l]+z;
}
void elemmaxmod(int M,int m,int &z,int &c)
{
int s=0,l;
for (int i=1;i<=m;i++)
if (M[i]>s) s=M[i],l=i;
++c;
C©=l;
if(M[l]<z) z=z-M[l],M[l]=0;
else M[l]=M[l]-z,z=0;
V©=M[l];
}
void planA(int M[],int n,int m)
{
int max=0,c=0;
for (int i=1;i<=n;i++)
if (sumpelin(M[i],m)>max)
max=sumpelin(M[i],m);
for (int i=1;i<=n;i++)
{
int x=sumpelin(M[i],m);
if(max-x!=0)
{
elemminmod(M[i],m,max-x,c);
L©=i;
}
}
cout<<c<<”\n”;
for (int i=1;i<=c;i++)
cout<<L[i]<<” “<<C[i]<<” “<<V[i]<<”\n”;
}
void planB(int M[],int n,int m,int k)
{
int l=n-k,smax=0,c=0;
for(int i=1;i<n;i++)
{
int l1=0;
for(int j=i+1;j<=n;j++)
if(sumpelin(M[i],m)==sumpelin(M[j],m)) l1++;
if(l1>=l) l=l1,smax=sumpelin(M[i],m);
}
for(int i=1;i<=n;i++)
if(sumpelin(M[i],m)<smax)
{
int z=smax-sumpelin(M[i],m);
elemminmod(M[i],m,z,c);
L©=i;
}
else if(sumpelin(M[i],m)>smax)
{
int z=sumpelin(M[i],m)-smax;
while(z>0)
{
elemmaxmod(M[i],m,z,c);
L©=i;
}
}
cout<<c<<”\n”;
for (int i=1;i<=c;i++)
cout<<L[i]<<” “<<C[i]<<” “<<V[i]<<”\n”;
}
void preluck(int M[],int n,int m,int k)
{
if (k==(n-1)) planA(M, n,m);
else if(k<(n-1)) planB(M,n,m,k);
}
int main()
{
int M,n,m,k;
citmat(M,n,m,k);
preluck(M,n,m,k);
return 0;
}