Problem: problem

$ M $ students will be tested in a classroom with $ N $ seats in a straight line. Seats are numbered $ 1 \ dots N $ from the front, and $ 1 $ per seat can seat $ 1 $ students.

Now each student is sitting in the $ A_1, \ dots, A_M $ seats.

To start the test, the following conditions must be met:

* $ 1 \ dots M $ students are sitting in every seat.



Therefore, we decided to repeat the following operations until the conditions were met.

* Move the student sitting at the back and sit at the front of the vacant seats.



Find the number of operations required to meet the conditions.



output

Output the number of operations required to meet the conditions. Also, output a line break at the end.

Example

Input

6 4
1 4 5 6


Output

2

Solution (in CPP):

Solution:
#include<iostream>
#include <algorithm>
#include<string>
#include <bitset>
#include <vector>
#include <functional>
#include <climits>
#include <iomanip>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <iomanip>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <numeric>
using namespace std;
using ll = long long;
int main()
{

	ll a, b = 0, c = 0, d = 0;
	ll l;
	string s, t;
	ll n, m, h, w, X;
	
	ll M[10000] = {};
	cin >> n;
	cin >> m;
	for (int i = 0; i < m; i++)
	{
		cin >> c;
		M[c] = 1;
	}
	for (int i = 1; i <= m; i++)
	{
		if (M[i]==0)
		{
			d++;
		}
	}



	cout << d << endl;

	//cout << sum << endl;
	//cout <<  endl;

	return 0;
}

//memcpy(x, visited, sizeof(ll)*n);
//void kansuu(ll num, ll visited[10]) {}
//kansuu(1, zz);
//cout << setprecision(15) << v << endl;

//int temp;
//for (int i = 0; i < n - 1; i++) {
//	for (int j = n - 1; j > i; j--) {
//		if (w[j - 1] < w[j]) {  /* 前の要素の方が大きかったら */
//			temp = w[j];        /* 交換する */
//			w[j] = w[j - 1];
//			w[j - 1] = temp;
//		}
//	}
//}