import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] params = br.readLine().trim().split(" ");
int n = Integer.parseInt(params[0]);
int m = Integer.parseInt(params[1]);
int k = Integer.parseInt(params[2]);
params = br.readLine().trim().split(" ");
int[] pretty = new int[n];
for(int i = 0; i
pretty[i] = Integer.parseInt(params[i]);
int count = 0;
// 构建一个小根堆作为窗口
PriorityQueue window = new PriorityQueue<>();
// 滑窗遍历
for(int left = 0; left <= n - m; left++){
if(left == 0){
// 构建初始窗口
for(int i = left; i <= left + m - 1; i++)
window.offer(pretty[i]);
}else{
window.remove(pretty[left - 1]);
window.offer(pretty[left + m - 1]);
}
// 这一段连续区间满足要求
if(window.peek() >= k) count++;
}
System.out.println(count);
}
}