/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include<stdio.h>
typedef struct
{
int d,n;
} data;
data x[50001]={},f[50001]={};
void swap(int b, int c)
{
int t=x[b].d;
x[b].d=x[c].d;
x[c].d=t;
}
void qs(int s, int e)
{
int p=s;
int low=s, high=e+1;
if(s>=e)
return ;
do
{
do
{
low++;
}
while(x[p].d>x[low].d);
do
{
high--;
}
while(x[p].d<x[high].d);
if(low<high)
swap(low,high);
}
while(low<high);
swap(s,high);
qs(s,high-1);
qs(high+1,e);
}
int bs(int k, int m, int u)
{
int mid=(k+m)/2;
if(k>m) return -1;
if(x[mid].d==u) return x[mid].n;
else if(x[mid].d<u) bs(mid+1,m,u);
else bs(k,mid-1,u);
}
int main()
{
int a,i,j;
scanf("%d",&a);
for(i=1; i<=a; i++)
{
scanf("%d",&x[i].d);
x[i].n=i-1;
f[i].d=x[i].d;
}
qs(1,a);
for(i=1;i<=a;i++)
{
f[i].n=bs(1,a,f[i].d);
}
for(i=1;i<=a;i++)
{
printf("%d ",f[i].n);
}
}
*/
/*
// arr[s] ~ arr[e] 에서 k값의 위치 리턴
int bs(int s, int e, int k)
{
int mid=(s+e)/2;
if(s>e) return -1;
if(arr[mid]==k) return mid;
else if(arr[mid]<k) bs(mid+1,e,k);
else bs(s,mid-1,k);
}
*/
/*
#include<stdio.h>
typedef struct
{
int d,a;
}data;
data x[1000001]={},f[100000]={};
int bs(int s, int e, int k)
{
int mid=(s+e)/2;
if(s>e) return -1;
if(x[mid].d==k) return x[mid].a;
else if(x[mid].d<k) bs(mid+1,e,k);
else bs(s,mid-1,k);
}
int main()
{
int n,m,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&x[i].d);
x[i].a=i;
}
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%d",&f[i].d);
}
for(i=1;i<=m;i++)
{
f[i].a=bs(1,n,f[i].d);
}
for(i=1;i<=m;i++)
{
printf("%d ",f[i].a);
}
}
*/
#include<stdio.h>
int arr[100001]={},n;
int bs(int s, int e, int k)
{
int mid=(s+e)/2;
if(s>e) return n+1;
if(s==e)
{
if(arr[s]>=k) return s;
else return n+1;
}
if(arr[mid]<k) bs(mid+1,e,k);
else bs(s,mid,k);
}
int main()
{
int m,i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
}
printf("%d",bs(1,n,m));
}



