#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k; cin>>n>>k;
int a[n];
for(int i=0;i<n;i++) cin>>a[i];

unordered_map<int,int> mp1,mp2;
mp1[0]=-1;
mp2[0]=-1;

int x=0,lmin=INT_MAX,lmax=0;

for(int j=0;j<n;j++){
x+=a[j];

if(mp1.find(x-k)!=mp1.end()){
int i=mp1[x-k]+1;
lmin=min(lmin,j-i+1);
}
mp1[x]=j;

if(mp2.find(x-k)!=mp2.end()){
int i=mp2[x-k]+1;
lmax=max(lmax,j-i+1);
}

if(mp2.find(x)==mp2.end())
mp2[x]=j;
}

if(lmax==0)
cout<<-1<<" "<<-1;
else
cout<<lmax<<" "<<lmin;
}