/*
#include <stdio.h>//4654 : 탑
int main()
{
int i,j,n,a[500001]={},b[500001]={};
scanf("%d",&n);
for(i=1; i<=n; i++){
scanf("%d",&a[i]);
}
for(i=n; i>0; i--){
for(j=i; j>0; j--){
if(a[i]<a[j]){
b[i]=j;
break;
}
}
}
for(i=1; i<=n; i++){
printf("%d ",b[i]);
}
return 0;
}
*/
/*
탐색 search
n개의 데이터 -> 그 중에 k가 있는지?
1. 순차탐색 ( 1번 ~ n번 차례대로 찾기)
2. 이진탐색(이분탐색, binary search) -> 정렬이 되어있는 곳
up down 게임
1 ~ 50 사이의 수를 하나 생각했어.
가운데 숫자 -> 1. 맞을 2. up, 3. down
1번 -> 25
2번 -> 12
3번 -> 6
4번 -> 3
5번 -> 1
6번 -> 0
*/
/*
s .... mid .... e
int bs(int s, int e, int k) // a[s] ~ a[e] 에서 k값의 위치 리턴
{
if() //재귀 종료조건
{
return -1;
}
int mid = (s+e)/2;
if(a[mid]==k) return mid;
else if(a[mid] < k) return bs(mid+1,e,k);
else return bs();//
}
7
1 7 7 7 7
*/
#include <stdio.h>//2633 : Lower Bound
int a[100001]={};
int f(int s, int e, int k, int n)
{
int mid=(s+e)/2;
if(s==mid){ //(= s==e||e==mid)결국 하나 남았다는 뜻
if(a[mid]<k){
return mid+1;
}
else if(){
}
return mid;
}
if(a[mid]>=k){//down
return f(s,mid,k,n);
}
else{//up
return f(mid+1,e,k,n);
}
}
int main()
{
int i,n,k;
scanf("%d %d",&n,&k);
for(i=1; i<=n; i++){
scanf("%d",&a[i]);
}
printf("%d",f(1,n,k,n));
return 0;
}