#include<iostream>
#include<vector>
#include<map>
#include<unordered_map>
#include<set>
#include<unordered_set>
#include<string>
#include<algorithm>
#include<queue>
#include<ext/pb_ds/tree_policy.hpp>
#include<ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
#define oset tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>
using namespace std;
#define M 200005
#define MM 10000000001
#define ll long long
#define mll map<ll,ll>
#define f(b) for(ll i=0;i<b;i++)
#define fj(b) for(ll j=0;j<b;j++)
#define rf(b) for(ll i=b;i>-1;i--)
#define fr(a,b) for(ll i=a;i<b;i++)
#define rfr(a,b) for(ll i=a;i>b;i--)
#define pb push_back
#define F first
#define S second
#define dd long double
#define mp make_pair
#define pii pair<ll,ll>
#define vi vector<ll>
#define vp vector<pair<ll,ll> >
#define endl "\n"
#define seea(a,n) for(ll i=0;i<n;i++){cin>>a[i];}
#define ya cout<<"YES"<<"\n";
#define na cout<<"NO"<<"\n";
#define pr cout<<disp<<"\n";
#define pri cout<<disp<<" ";
#define nl cout<<"\n";
vector<ll> a, sg;
void build(int l, int r, int node){
if(l==r){
sg[node]=a[l];return;
}
int m = (l+r)/2;
build(l, m, 2*node);
build(m+1, r, 2*node+1);
sg[node]=max(sg[2*node], sg[2*node+1]);
}
void upd(int idx, ll val, int tl, int tr, int node){
if(tr<idx||tl>idx) return;
if(tl==idx&&tr==idx){
sg[node]=val;return;
}
int tm = (tl+tr)/2;
upd(idx, val, tl, tm, 2*node);
upd(idx, val, tm+1, tr, 2*node+1);
sg[node]=max(sg[2*node], sg[2*node+1]);
}
ll query(int l, int r, int tl, int tr, int node){
if(tr<l||tl>r) return 0;
if(l<=tl&&tr<=r){
return sg[node];
}
int tm = (tl+tr)/2;
return max(query(l, r, tl, tm, 2*node), query(l, r, tm+1, tr, 2*node+1));
}
void Solve()
{
ll n, m;
cin >> n >> m;
int sz = n+1;
a.assign(sz, 0);
sg.assign(4*sz, 0);
for(int i =1;i<sz;i++){
cin>>a[i];
}
build(1, n, 1);
oset o;
for(int q =0;q<m;q++){
ll val;
cin>>val;
int l = 1, r = n;
int ans = 0;
while(l<=r){
int m = (l+r)/2;
if(query(1, m, 1, n, 1)>=val){
ans=m;
r=m-1;
}else{
l=m+1;
}
}
cout<<ans-o.order_of_key(ans)<<" ";
upd(ans, 0, 1, n, 1);
o.insert(ans);
}
}
int32_t main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int t = 1;
// cin >> t;
for(int i = 1; i <= t; i++)
{
Solve();
}
return 0;
}
CgoKI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8bWFwPgojaW5jbHVkZTx1bm9yZGVyZWRfbWFwPgojaW5jbHVkZTxzZXQ+CiNpbmNsdWRlPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8ZXh0L3BiX2RzL3RyZWVfcG9saWN5LmhwcD4KI2luY2x1ZGU8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwojZGVmaW5lIG9zZXQgdHJlZTxpbnQsIG51bGxfdHlwZSwgbGVzczxpbnQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNIDIwMDAwNQojZGVmaW5lIE1NIDEwMDAwMDAwMDAxCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbWxsIG1hcDxsbCxsbD4KI2RlZmluZSBmKGIpIGZvcihsbCBpPTA7aTxiO2krKykKI2RlZmluZSBmaihiKSBmb3IobGwgaj0wO2o8YjtqKyspCiNkZWZpbmUgcmYoYikgZm9yKGxsIGk9YjtpPi0xO2ktLSkKI2RlZmluZSBmcihhLGIpIGZvcihsbCBpPWE7aTxiO2krKykKI2RlZmluZSByZnIoYSxiKSBmb3IobGwgaT1hO2k+YjtpLS0pCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgZGQgbG9uZyBkb3VibGUKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwaWkgcGFpcjxsbCxsbD4KI2RlZmluZSB2aSB2ZWN0b3I8bGw+CiNkZWZpbmUgdnAgdmVjdG9yPHBhaXI8bGwsbGw+ID4KI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBzZWVhKGEsbikgZm9yKGxsIGk9MDtpPG47aSsrKXtjaW4+PmFbaV07fQojZGVmaW5lIHlhIGNvdXQ8PCJZRVMiPDwiXG4iOwojZGVmaW5lIG5hIGNvdXQ8PCJOTyI8PCJcbiI7CiNkZWZpbmUgcHIgY291dDw8ZGlzcDw8IlxuIjsKI2RlZmluZSBwcmkgY291dDw8ZGlzcDw8IiAiOwojZGVmaW5lIG5sIGNvdXQ8PCJcbiI7CgoKCnZlY3RvcjxsbD4gYSwgc2c7CnZvaWQgYnVpbGQoaW50IGwsIGludCByLCBpbnQgbm9kZSl7CiAgICBpZihsPT1yKXsKICAgICAgICBzZ1tub2RlXT1hW2xdO3JldHVybjsKICAgIH0KICAgIGludCBtID0gKGwrcikvMjsKICAgIGJ1aWxkKGwsIG0sIDIqbm9kZSk7CiAgICBidWlsZChtKzEsIHIsIDIqbm9kZSsxKTsKICAgIHNnW25vZGVdPW1heChzZ1syKm5vZGVdLCBzZ1syKm5vZGUrMV0pOwp9CnZvaWQgdXBkKGludCBpZHgsIGxsIHZhbCwgaW50IHRsLCBpbnQgdHIsIGludCBub2RlKXsKICAgIGlmKHRyPGlkeHx8dGw+aWR4KSByZXR1cm47CiAgICBpZih0bD09aWR4JiZ0cj09aWR4KXsKICAgICAgICBzZ1tub2RlXT12YWw7cmV0dXJuOwogICAgfQogICAgaW50IHRtID0gKHRsK3RyKS8yOwogICAgdXBkKGlkeCwgdmFsLCB0bCwgdG0sIDIqbm9kZSk7CiAgICB1cGQoaWR4LCB2YWwsIHRtKzEsIHRyLCAyKm5vZGUrMSk7CiAgICBzZ1tub2RlXT1tYXgoc2dbMipub2RlXSwgc2dbMipub2RlKzFdKTsKfQpsbCBxdWVyeShpbnQgbCwgaW50IHIsIGludCB0bCwgaW50IHRyLCBpbnQgbm9kZSl7CiAgICBpZih0cjxsfHx0bD5yKSByZXR1cm4gMDsKICAgIGlmKGw8PXRsJiZ0cjw9cil7CiAgICAgICAgcmV0dXJuIHNnW25vZGVdOwogICAgfQogICAgaW50IHRtID0gKHRsK3RyKS8yOwogICAgcmV0dXJuIG1heChxdWVyeShsLCByLCB0bCwgdG0sIDIqbm9kZSksIHF1ZXJ5KGwsIHIsIHRtKzEsIHRyLCAyKm5vZGUrMSkpOwp9CnZvaWQgU29sdmUoKQp7CiAgICBsbCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIGludCBzeiA9IG4rMTsKICAgIGEuYXNzaWduKHN6LCAwKTsKICAgIHNnLmFzc2lnbig0KnN6LCAwKTsKICAgIGZvcihpbnQgaSA9MTtpPHN6O2krKyl7CiAgICAgICAgY2luPj5hW2ldOwogICAgICAgIAogICAgfQogICAgYnVpbGQoMSwgbiwgMSk7Cglvc2V0IG87CiAgICBmb3IoaW50IHEgPTA7cTxtO3ErKyl7CiAgICAgICAgbGwgdmFsOwogICAgICAgIGNpbj4+dmFsOwogICAgICAgIGludCBsID0gMSwgciA9IG47CiAgICAgICAgaW50IGFucyA9IDA7CiAgICAgICAgd2hpbGUobDw9cil7CiAgICAgICAgICAgIGludCBtID0gKGwrcikvMjsKICAgICAgICAgICAgaWYocXVlcnkoMSwgbSwgMSwgbiwgMSk+PXZhbCl7CiAgICAgICAgICAgICAgICBhbnM9bTsKICAgICAgICAgICAgICAgIHI9bS0xOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIGw9bSsxOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjb3V0PDxhbnMtby5vcmRlcl9vZl9rZXkoYW5zKTw8IiAiOwoKICAgICAgICB1cGQoYW5zLCAwLCAxLCBuLCAxKTsKICAgICAgICBvLmluc2VydChhbnMpOwoKCiAgICB9CiAgICAKICAgIAoKfQoKCgoKaW50MzJfdCBtYWluKCkKewogICAKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaW50IHQgPSAxOwoKICAgIAogICAgLy8gY2luID4+IHQ7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IHQ7IGkrKykKICAgIHsKICAgICAgCiAgICAgICAgU29sdmUoKTsKICAgIH0KIAoKICAgIHJldHVybiAwOwp9Cg==