#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
#define pb push_back
#define mod 1000000007
#define srt(v) sort(v.begin(),v.end())
#define rsrt(v) sort(v.rbegin(),v.rend())
#define OPTIMIZE_IO ios::sync_with_stdio(false); cin.tie(nullptr);
int min_seg(vector<int> &arr){
int n = arr.size();
int left = 0, right = n - 1;
while (left < n - 1 && arr[left] <= arr[left + 1]) {
left++;
}
if (left == n - 1) return 0;
while (right > 0 && arr[right - 1] <= arr[right]) {
right--;
}
int minVal = *min_element(arr.begin() + left, arr.begin() + right + 1);
int maxVal = *max_element(arr.begin() + left, arr.begin() + right + 1);
while (left > 0 && arr[left - 1] > minVal) left--;
while (right < n - 1 && arr[right + 1] < maxVal) right++;
return right - left + 1;
}
void solve() {
int n,k;
cin>>n>>k;
vector<int> arr(n);
for(int i=0; i<n; i++)cin>>arr[i];
ll len=min_seg(arr);
if(len>k){
cout<<"NO"<<endl;
}
else{
cout<<"YES"<<endl;
int pos1=0,pos2=0;
for(int i=0; i<n-1; i++){
if(arr[i]>arr[i+1]){
pos1=i+1;
pos2=i+1+(len-1);
break;
}
}
cout<<pos1<<" "<<pos2<<endl;
}
}
int main() {
OPTIMIZE_IO;
int t=1;
while (t--) {
solve();
}
return 0;
}