#include<bits/stdc++.h>
#define maxn 1000050
using namespace std;
int a[maxn],b[maxn],c[maxn],n,k,m,t;
int main()
{
scanf("%d%d",&n,&k);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
a[n]=0; memset(c,-1,sizeof(c));
m=0;b[m]=0;c[0]=0;t=0;
for (int i=1;i<=n;i++) if (a[i]<a[b[m]]) b[++m]=i,c[i]=m;
for (int i=1;i<=m;i++)
if (b[i]-b[i-1]>2*k) {puts("NO");return 0;}
else if (b[i]-b[i-1]>k)
{
if (t) {puts("NO");return 0;} else t=i;
}
if (!t||t<m&&b[t+1]-b[t-1]<=2*k) {puts("YES");return 0;}
for (int i=b[t]+1;i<n;i++)
if (c[i]==-1||b[c[i]+1]-b[c[i]-1]<=k){
if (a[i]<a[b[t-1]]&&a[i]>a[b[t]]) {puts("YES");return 0;}
}
puts("NO");return 0;
}
#include<bits/stdc++.h>
#define maxn 1000050
using namespace std;
int a[maxn],b[maxn],c[maxn],n,k,m,t;
int main()
{
scanf("%d%d",&n,&k);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
a[n]=0; memset(c,-1,sizeof(c));
m=0;b[m]=0;c[0]=0;t=0;
for (int i=1;i<=n;i++) if (a[i]<a[b[m]]) b[++m]=i,c[i]=m;
for (int i=1;i<=m;i++)
if (b[i]-b[i-1]>2*k) {puts("NO");return 0;}
else if (b[i]-b[i-1]>k)
{
if (t) {puts("NO");return 0;} else t=i;
}
if (!t||t<m&&b[t+1]-b[t-1]<=2*k) {puts("YES");return 0;}
for (int i=b[t]+1;i<n;i++)
if (c[i]==-1||b[c[i]+1]-b[c[i]-1]<=k){
if (a[i]<a[b[t-1]]&&a[i]>a[b[t]]) {puts("YES");return 0;}
}
puts("NO");return 0;
}