#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
inline int power(int a, int b) {
int x = 1;
while (b) {
if (b & 1) x *= a;
a *= a;
b >>= 1;
}
return x;
}
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
vector<vector<int>> lamps;
vector<int> points;
//* Assuming 0 based indexing lamps + points
void consistency1(int n, int m) {
vector<int> dif(N);
for(auto& l : lamps){
int x = l[0];
int y = l[1];
dif[x]++;
if(y+1<N) dif[y+1]--;
}
for(int i=1; i<N; i++){
dif[i] += dif[i-1];
}
vector<int> ans(n);
for(int i=0; i<n; i++){
ans[i] = dif[points[i]];
}
for(int i=0; i<n; i++){
cout << ans[i] << " ";
}
cout << " | ";
}
//* Assuming 0 based indexing lamps + points
void consistency2(int n, int m) {
map<int,int> events;
for(auto& l : lamps){
int x = l[0], y = l[1];
events[x]++;
events[y+1]--;
}
map<int,int, greater<int>> mp;
int acc = 0;
for(auto& e : events){
acc += e.second;
mp[e.first] = acc;
}
vector<int> ans(n, 0);
for(int i=0; i<n; i++){
//* Some points might not exist in map so we find nearest point in map
auto it = mp.lower_bound(points[i]);
if(it!= mp.end()){
ans[i] = it->second;
}
}
for(int i=0; i<n; i++){
cout << ans[i] << " ";
}
}
void solve() {
int n, m;
cin >> n >> m;
points.resize(n);
for(int i=0; i<n; i++) cin >> points[i];
lamps.resize(m);
for(int i=0; i<m; i++){
int x, y;
cin >> x >> y;
lamps[i] = {x, y};
}
consistency1(n, m);
consistency2(n, m);
cout << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYikgewogICAgaW50IHggPSAxOwogICAgd2hpbGUgKGIpIHsKICAgICAgICBpZiAoYiAmIDEpIHggKj0gYTsKICAgICAgICBhICo9IGE7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKY29uc3QgaW50IE0gPSAxMDAwMDAwMDA3Owpjb25zdCBpbnQgTiA9IDNlNSs5Owpjb25zdCBpbnQgSU5GID0gMmU5KzE7CmNvbnN0IGludCBMSU5GID0gMjAwMDAwMDAwMDAwMDAwMDAwMTsKCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKCgp2ZWN0b3I8dmVjdG9yPGludD4+IGxhbXBzOwp2ZWN0b3I8aW50PiBwb2ludHM7CgovLyogQXNzdW1pbmcgMCBiYXNlZCBpbmRleGluZyBsYW1wcyArIHBvaW50cwp2b2lkICBjb25zaXN0ZW5jeTEoaW50IG4sIGludCBtKSB7CiAgICAKICAgIHZlY3RvcjxpbnQ+IGRpZihOKTsgCiAgICBmb3IoYXV0byYgbCA6IGxhbXBzKXsKICAgIAlpbnQgeCA9IGxbMF07CiAgICAJaW50IHkgPSBsWzFdOwogICAgCWRpZlt4XSsrOwogICAgCWlmKHkrMTxOKSBkaWZbeSsxXS0tOwogICAgfQogICAgCiAgICBmb3IoaW50IGk9MTsgaTxOOyBpKyspeyAKICAgIAlkaWZbaV0gKz0gZGlmW2ktMV07CiAgICB9CiAgICAKICAgIHZlY3RvcjxpbnQ+IGFucyhuKTsKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKyl7CiAgICAJYW5zW2ldID0gZGlmW3BvaW50c1tpXV07CiAgICB9CiAgICAKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKyl7CiAgICAJY291dCA8PCBhbnNbaV0gPDwgIiAiOwogICAgfQogICAgY291dCA8PCAiIHwgIjsKCiAgICAKfQoKLy8qIEFzc3VtaW5nIDAgYmFzZWQgaW5kZXhpbmcgbGFtcHMgKyBwb2ludHMKdm9pZCAgY29uc2lzdGVuY3kyKGludCBuLCBpbnQgbSkgewogICAgCiAgICBtYXA8aW50LGludD4gZXZlbnRzOwoJZm9yKGF1dG8mIGwgOiBsYW1wcyl7CgkJaW50IHggPSBsWzBdLCB5ID0gbFsxXTsKCQkKCQlldmVudHNbeF0rKzsKCQlldmVudHNbeSsxXS0tOwoJfQoJCgltYXA8aW50LGludCwgZ3JlYXRlcjxpbnQ+PiBtcDsKCWludCBhY2MgPSAwOwoJZm9yKGF1dG8mIGUgOiBldmVudHMpewoJCWFjYyArPSBlLnNlY29uZDsKCQltcFtlLmZpcnN0XSA9IGFjYzsKCX0KCQoJdmVjdG9yPGludD4gYW5zKG4sIDApOwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQkKCQkvLyogU29tZSBwb2ludHMgbWlnaHQgbm90IGV4aXN0IGluIG1hcCBzbyB3ZSBmaW5kIG5lYXJlc3QgcG9pbnQgaW4gbWFwCgkJYXV0byBpdCA9IG1wLmxvd2VyX2JvdW5kKHBvaW50c1tpXSk7CgkJaWYoaXQhPSBtcC5lbmQoKSl7CgkJCWFuc1tpXSA9IGl0LT5zZWNvbmQ7CgkJfQoJfQoJCglmb3IoaW50IGk9MDsgaTxuOyBpKyspewoJCWNvdXQgPDwgYW5zW2ldIDw8ICIgIjsKCX0KICAgIAp9Cgp2b2lkIHNvbHZlKCkgewogICAgCmludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIAogICAgcG9pbnRzLnJlc2l6ZShuKTsgCiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspIGNpbiA+PiBwb2ludHNbaV07CiAgICAKICAgIGxhbXBzLnJlc2l6ZShtKTsKICAgIGZvcihpbnQgaT0wOyBpPG07IGkrKyl7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBsYW1wc1tpXSA9IHt4LCB5fTsKICAgIH0KICAgIAoJY29uc2lzdGVuY3kxKG4sIG0pOwoJY29uc2lzdGVuY3kyKG4sIG0pOwoJY291dCA8PCBlbmRsOwoKfQoKCgoKCmludDMyX3QgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoKICAgIGludCB0ID0gMTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=