#include <iostream>
using namespace std;
//每个1前面有几个0就能得到几个01子串
//i+1时如果data[i]为0则要减去后续1数量的子串,为1则不用处理
// k超过了int32的范围,使用cin读取的话,溢出会导致后续字符串读入失败
void Quick(const string& data, int64_t n, int64_t k) {
int64_t zCnt = 0;
int64_t sum = 0;
int64_t oCnt = 0;
for(auto i = 0, j = 0; i < n-1; i++) {
while(sum < k && j < n){
if(data[j] == '0') {
zCnt++;
} else {
if(zCnt > 0) {
oCnt++;
sum += zCnt;
}
}
j++;
}
if(sum == k) {
while(data[i] == '1') {
i++;
}
printf("%d %d\n", i+1, j);
return;
}
if(j == n && sum < k) {
printf("-1\n");
return;
}
if(data[i] == '0') {
zCnt--;
sum -= oCnt;
//移除连续的1
for(auto a = i + 1; a < j; a++) {
if(data[a] == '1') {
oCnt--;
} else {
break;
}
}
}
}
printf("-1\n");
}
int main() {
int64_t n, k;
cin >> n >> k;
string data;
cin >> data;
Quick(data, n, k);
}
// 64 位输出请用 printf("%lld")