#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int main() { int n, m; while (cin >> n >> m) { vector h(n), q(m), v; for (int i = 0; i < n; i++) { scanf("%d", &h[i]); v.push_back(h[i]); } for (int j = 0; j < m; j++) { scanf("%d", &q[j]); v.push_back(q[j]); } sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end()); int l = v.size(); vector a(l); for (int i = 0; i < n; i++) { h[i] = lower_bound(v.begin(), v.end(), h[i]) - v.begin(); a[h[i]]++; } for (int j = 0; j < m; j++) { q[j] = lower_bound(v.begin(), v.end(), q[j]) - v.begin(); printf("%d\n", a[q[j]]); a[q[j]] = 0; } } }