#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(){
//사람의 수와 창구의 수
int n, k;
//n번째로 나온 사람이 창구를 통과할 수 있는지 검사하는 변수
int temp;
cin >> n >> k;
//창구를 이용하는 사람을 저장하는 1차원 큐 동적 할당 후 0으로 초기화
int *gate = new int[k];
memset(gate, 0, sizeof(int)*k);
//빠져나온 사람의 순서를 입력받는 배열
int *ex = new int[n];
for(int i=0; i<n; i++){
cin >> ex[i];
}
//1~n번째사람에 대해
for(int i=0; i<n; i++){
//기본적으로 통과하지 못한다고 가정
temp = 0;
//i번째로 나온 사람이 들어갈 수 있는 창구가 있을 때 (창구 안에 있는 사람보다 순번이 뒤일때)
//창구에 해당 사람을 넣어주고 원래 있던 사람은 큐 해제
for(int j=0; j<k; j++){
if(gate[j] < ex[i]){
gate[j] = ex[i];
//통과했기 때문에 1로 설정
temp = 1;
break;
}
}
//모든 창구 검사 시 통과하지 못했으면 탐색 종료
if(temp == 0){
break;
}
}
//통과하지 못한 케이스가 있는 경우 No 출력
if(temp == 0){
cout << "NO";
//모두 통과한 경우 Yes 출력
}else{
cout << "YES";
}
}