#include<bits/stdc++.h>
using namespace std;
long long int a[501],sum,ans;
int n,k;
bool check(int x){
int t=k;
long long int res=0;
for(int i=n;i>=1;i--){
res+=a[i];
if(res==x){
res=0;t--;
}else if(res>x){
res=a[i];t--;
}
if(t<=0) return false;
}
return true;
}
int divi(int x,int y){
long long int l=x,r=y;
while(l<=r){
long long int mid=(l+r)/2;
if(!check(mid)) l=mid+1;
else r=mid-1;
}
return l;
}
int main(){
cin>>n>>k;
deque<long long int> d;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
}
int mid=divi(0,sum),beg=n,end=n;
for(int i=n;i>=1;i--){
ans+=a[i];
beg--;
if(ans>mid){
ans=a[i];
d.push_front(end);
d.push_front(beg+2);
if(!d.empty()&&d[1]==d[2]) d[1]--;
end=beg+2;
}
}
if(d[0]>n||d[0]<1) d[0]=2;
printf("%d %d\n",1,d[0]-1);
for(int i=0;i<d.size();i++){
if(i%2==0) printf("%d ",d[i]);
else printf("%d\n",d[i]);
}
}