#include "string" #include "iostream" #include "cstdio" #include "cmath" #include "set" #include "queue" #include "vector" #include "cctype" #include "sstream" #include "cstdlib" #include "cstring" #include "stack" #include "ctime" #include "algorithm" #define pa pair #define Pi M_PI #define INF 0x3f3f3f3f #define INFL 0x3f3f3f3f3f3f3f3fLL using namespace std; typedef long long LL; const int M=50005; struct node { int h; int num; }a[M],b[M]; int cmp(node n1,node n2) { return n1.h>n2.h; } int tmp[50005],ans[50005]; int main() { int n,m,i,la,x; while(~scanf("%d%d",&n,&m)) { for(i=1;i<=n;i++) { scanf("%d",&a[i].h); a[i].num=i; } for(i=1;i<=m;++i) { scanf("%d",&b[i].h); b[i].num=i; } sort(a+1,a+n+1,cmp); sort(b+1,b+m+1,cmp); memset(ans,0,sizeof(ans)); memset(tmp,0,sizeof(tmp)); la=1;x=0; for(i=1;i<=m;++i) { while(la<=n&&a[la].h>b[i].h) { if(tmp[a[la].num-1]==1&&tmp[a[la].num+1]==1) x--; if(tmp[a[la].num-1]==0&&tmp[a[la].num+1]==0) x++; tmp[a[la].num]=1; la++; } ans[b[i].num]=x; } for(i=1;i<=m;++i) printf("%d\n",ans[i]); } }