/*
#include<stdio.h>
int arr[50]={};
//binary_search 정렬이 되어있는경우 (퀵정렬->이분탐색)
int bs(int s, int e, int k)// s번째부터 e번째까지 k값 위치 리턴
{
int mid = (s+e)/2;
if(s>e) return -1;
if(arr[mid]==k) return mid;
else if(arr[mid]>k) bs(s,mid-1,k);
else bs(mid+1,e,k);
}
int main()
{
int k;
scanf("%d",&k);
printf("%d",bs(0,49,k));
}
#include <stdio.h>
int arr[1000001]={};
int bs(int s, int e, int k)
{
int mid = (s+e)/2;
if(s>e) return -1;
if(arr[mid]==k) return mid;
if(arr[mid]>k) bs(s, mid-1, k);
else bs(mid+1, e, k);
}
int main()
{
int n, m, k;
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
scanf("%d", &arr[i]);
}
scanf("%d", &m);
for(int i=1; i<=m; i++)
{
scanf("%d", &k);
printf("%d ", bs(1, n, k));
}
}
//quick_sort
void qs(int s, int e) // arr[s] ~ arr[e] 퀵정렬
{
int pivot=s;
int low=s, high=e+1;
if(s>=e) return ;
do
{
do{low++;}while(arr[pivot]>arr[low]);
do{high--;}while(arr[pivot]<arr[high]);
if(low<high) swap(low,high);
}while(low<high);
swap(pivot,high);
qs(s,high-1);
qs(high+1,e);
}
#include <stdio.h>
int arr[100001] = {};
void swap(int a, int b)
{
int temp;
temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
void qs(int s, int e)
{
int pivot = s;
int low=s, high=e+1;
if(s>=e) return;
do
{
do{ low++; } while(arr[pivot] > arr[low]);
do{ high--; } while(arr[pivot] < arr[high]);
if(low < high) swap(low, high);
}while(low < high);
swap(pivot, high);
qs(s, high-1);
qs(high+1, e);
}
int main()
{
int n;
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
scanf("%d", &arr[i]);
}
qs(1, n);
for(int i=1; i<=n; i++)
{
printf("%d\n", arr[i]);
}
}
#include <stdio.h>
int arr[50000] = {};
int arr1[50000] = {};
void swap(int a, int b)
{
int temp;
temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
void qs(int s, int e)
{
int pivot = s;
int low=s, high=e+1;
if(s>=e) return;
do
{
do{ low++; } while(arr[pivot] > arr[low]);
do{ high--; } while(arr[pivot] < arr[high]);
if(low < high) swap(low, high);
}while(low < high);
swap(pivot, high);
qs(s, high-1);
qs(high+1, e);
}
int bs(int s, int e, int k) //s번째부터 e번째까지 k값 위치 리턴
{
int mid = (s+e)/2;
if(s>e) return -1;
if(arr[mid] == k) return mid;
if(arr[mid] > k) bs(s, mid-1, k);
else bs(mid+1, e, k);
}
int main()
{
int n;
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &arr[i]);
arr1[i] = arr[i];
}
qs(0, n-1); //arr는 정렬됐고 arr1은 받은 그대로
for(int i=0; i<n; i++)
{
printf("%d ", bs(0, n, arr1[i]));
}
}
*/
#include <stdio.h>
int n, arr[100001]={};
int bs(int s, int e, int k)
{
int mid = (s+e)/2;
if(s>=e)
{
if(arr[mid]>=k) return mid;
else return n+1;
}
if(arr[mid]>=k) bs(s, mid, k);
else bs(mid+1, e, k);
}
int main()
{
int k;
scanf("%d %d", &n, &k);
for(int i=1; i<=n; i++)
{
scanf("%d", &arr[i]);
}
printf("%d", bs(1, n, k));
}



