The prison of your city has n prisoners. As the prison can't accommodate all of them, the city mayor has decided to transfer c of the prisoners to a prison located in another city.

For this reason, he made the n prisoners to stand in a line, with a number written on their chests. The number is the severity of the crime he/she has committed. The greater the number, the more severe his/her crime was.

Then, the mayor told you to choose the c prisoners, who will be transferred to the other prison. He also imposed two conditions. They are,

  * The chosen c prisoners has to form a contiguous segment of prisoners. 
  * Any of the chosen prisoner's crime level should not be greater then t. Because, that will make the prisoner a severe criminal and the mayor doesn't want to take the risk of his running away during the transfer. 



Find the number of ways you can choose the c prisoners.

Input

The first line of input will contain three space separated integers n (1 ≤ n ≤ 2·105), t (0 ≤ t ≤ 109) and c (1 ≤ c ≤ n). The next line will contain n space separated integers, the ith integer is the severity ith prisoner's crime. The value of crime severities will be non-negative and will not exceed 109. 

Output

Print a single integer — the number of ways you can choose the c prisoners.

Examples

Input

4 3 3
2 3 1 1


Output

2


Input

1 1 1
2


Output

0


Input

11 4 2
2 2 0 7 3 2 2 4 9 1 4


Output

6
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		InputReader in = new InputReader(System.in);
		int n = in.nextInt();
		int t = in.nextInt();
		int c = in.nextInt();
		int[] arr = new int[n + 13];
		for (int i = 1; i <= n; i++) {
			arr[i] = in.nextInt();
		}
		arr[0] = Integer.MAX_VALUE;
		int last = 0;
		int cnt = 0;
		for(int i = 1; i <= c; i++) {
			if(arr[i] > t) last = i;
		}
		for(int i = c; i <= n; i++) {
			if(arr[i] > t) last = i;
			//System.out.println(last);
			if(last >= i - c + 1 && last <= i) continue;
			else cnt++;
		}
		System.out.println(cnt);
	}
}

class InputReader {
	private BufferedReader reader;
	public StringTokenizer tokenizer;

	InputReader(File file) {
		try {
			reader = new BufferedReader(new FileReader(file));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		tokenizer = null;
	}

	InputReader(InputStream stream) {
		reader = new BufferedReader(new InputStreamReader(stream));
		tokenizer = null;
	}

	public String next() {
		while (tokenizer == null || !tokenizer.hasMoreTokens()) {
			try {
				tokenizer = new StringTokenizer(reader.readLine());
			} catch (Exception e) {

			}
		}
		return tokenizer.nextToken();
	}

	public String nextLine() {
		String str = "";
		try {
			str = reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return str;
	}

	public boolean hasMoreTokens() {
		while (tokenizer == null || !tokenizer.hasMoreTokens()) {
			String str = null;
			try {
				str = reader.readLine();
			} catch (IOException e) {
				throw new RuntimeException();
			}
			if (str == null) return false;
			tokenizer = new StringTokenizer(str);
		}
		return true;
	}

	public int nextInt() {
		return Integer.parseInt(next());
	}

	public double nextDouble() {
		return Double.parseDouble(next());
	}

	public long nextLong() {
		return Long.parseLong(next());
	}
}
	 	   			              		 	  		