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.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class PrisonTransfer {

	public static void main(String[] args) throws IOException {
		PrisonTransfer main = new PrisonTransfer();
		main.solve();
	}

	void solve() throws IOException {
		ReaderPrisonTransfer reader = new ReaderPrisonTransfer();
		reader.Init(System.in);
		int n = reader.NextInt();
		int t = reader.NextInt();
		int c = reader.NextInt();
		//int[] prisoners = new int[n];
		int prisoner =0;
		int count = 0;
		int res = 0;
		for (int i = 0; i < n; i++) {
			prisoner = reader.NextInt();
			if (prisoner <= t) {
				count++;
			} else {
				count = 0;
			}
			if (count == c) {
				res++;
				count--;
			}
		}

/*		for (int i = 0; i < n; i++) {
			if (prisoners[i] <= t) {
				count++;
			} else {
				count = 0;
			}
			if (count == c) {
				res++;
				count--;
			}
		}*/
		System.out.print(res);
	}

}

class ReaderPrisonTransfer {
	static BufferedReader reader;
	static StringTokenizer tokenizer;

	static void Init(InputStream input) {
		reader = new BufferedReader(new InputStreamReader(input));
		tokenizer = new StringTokenizer("");
	}

	static String Next() throws IOException {
		while (!tokenizer.hasMoreTokens()) {
			tokenizer = new StringTokenizer(reader.readLine());
		}
		return tokenizer.nextToken();
	}

	static int NextInt() throws IOException {
		return Integer.parseInt(Next());
	}

	static long NextLong() throws IOException {
		return Long.parseLong(Next());
	}

	static Double NextDouble() throws IOException {
		return Double.parseDouble(Next());
	}
}