link
#include<bits/stdc++.h>
using namespace std;
int a[100010],s[100010],f[1001][1001],n,m;
void dfs(int l,int r){
int p = 0;
for(int i = r;i >= l;i--){
if(p+a[i]>f[n][m]){
dfs(1,l);
cout<<l+1<<" "<<r<<endl;
return ;
}
p += a[i];
}
cout<<l<<" "<<r<<endl;
}
int main(){
cin>>n>>m;
for(int i = 1;i <= n;i++){
cin>>a[i];
s[i] = s[i-1]+a[i];
f[i][1] = s[i];
}
for(int i = 1;i <= n;i++){
for(int j = 2;j <= m;j++){
f[i][j] = 1e9;
if(i < j)continue;//每个人都要干活
for(int k = j;k <= i;k++){
f[i][j] = min(f[i][j],max(f[k-1][j-1],s[i]-s[k-1]));
}
}
}
dfs(1,n);
}