#include<bits/stdc++.h>
using namespace std;
int a[15][15],dp[20][20],last[20][20];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
cin>>a[i][j];
}
}for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
for(int k=0;k<=j;++k){
if(dp[i][j]<dp[i-1][j-k]+a[i][k]){
dp[i][j]=dp[i-1][j-k]+a[i][k];
last[i][j]=k;
}
}
}
}cout<<dp[n][m]<<endl;
vector<int> v;
int x=n,y=m;
while(x>0){
v.push_back(last[x][y]);
y-=last[x][y];
--x;
}reverse(v.begin(),v.end());
for(int i=1;i<=n;++i){
cout<<i<<' '<<v[i-1]<<endl;
}
return 0;
}