#include <bits/stdc++.h>
using namespace std;
int mx = 100000;
typedef long long ll;
#define pii pair<int,int>
#define F first
#define S second
#define mp make_pair
vector<pair<ll,ll> > vec;
bool isLeftFromPositiveDiag[1005];
bool isLeftFromNegativeDiag[1005];
bool isCounterClockwise(ll x1, ll y1, ll x2 , ll y2) {
ll val = x1*y2 - x2*y1;
if(val == 0) {
assert(0);
}
return val>0;
}
int main() {
int test;
scanf("%d",&test);
while(test--) {
vec.clear();
ll blX,blY,trX,trY;
scanf("%lld %lld %lld %lld",&blX,&blY,&trX,&trY);
int n;
scanf("%d",&n);
if(n > 1000) {
assert(0);
}
for(int i = 0 ; i < n ; i++) {
ll x,y;
scanf("%lld %lld",&x,&y);
if(x <= 0 || y <= 0 || x >= mx || y >= mx) {
assert(0);
}
vec.push_back(mp(x,y));
isLeftFromPositiveDiag[i] = false;
isLeftFromNegativeDiag[i] = false;
}
// ref point is blX,blY
// ref line is blX,blY to trX,trY
for(int i = 0 ; i < n ; i++) {
ll x1,y1,x2,y2;
x1 = trX-blX;
y1 = trY-blY;
x2 = vec[i].F - blX;
y2 = vec[i].S - blY;
isLeftFromPositiveDiag[i] = isCounterClockwise(x1,y1,x2,y2);
}
// ref point is trX,blY
// ref line is trX,blY to blX,trY
for(int i = 0 ; i < n ; i++) {
ll x1,y1,x2,y2;
x1 = blX-trX;
y1 = trY-blY;
x2 = vec[i].F - trX;
y2 = vec[i].S - blY;
isLeftFromNegativeDiag[i] = isCounterClockwise(x1,y1,x2,y2);
}
int lft, up , rht , down;
lft = up = rht = down = 0;
for(int i = 0 ; i < n ; i++) {
if (isLeftFromPositiveDiag[i] == true && isLeftFromNegativeDiag[i] == true ) {
lft++;
}
else if (isLeftFromPositiveDiag[i] == true && isLeftFromNegativeDiag[i] == false ) {
up++;
}
else if (isLeftFromPositiveDiag[i] == false && isLeftFromNegativeDiag[i] == false ) {
rht++;
}
else {
down++;
}
}
assert(lft+up+rht+down == n);
printf("%d %d %d %d\n",lft,up,rht,down);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG14ID0gMTAwMDAwOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgbXAgbWFrZV9wYWlyCgp2ZWN0b3I8cGFpcjxsbCxsbD4gPiB2ZWM7CmJvb2wgaXNMZWZ0RnJvbVBvc2l0aXZlRGlhZ1sxMDA1XTsKYm9vbCBpc0xlZnRGcm9tTmVnYXRpdmVEaWFnWzEwMDVdOwoKYm9vbCBpc0NvdW50ZXJDbG9ja3dpc2UobGwgeDEsIGxsIHkxLCBsbCB4MiAsIGxsIHkyKSB7CiAgICBsbCB2YWwgPSB4MSp5MiAtIHgyKnkxOwogICAgaWYodmFsID09IDApIHsKICAgICAgICBhc3NlcnQoMCk7CiAgICB9CiAgICByZXR1cm4gdmFsPjA7Cn0KCmludCBtYWluKCkgewogICAgaW50IHRlc3Q7CiAgICBzY2FuZigiJWQiLCZ0ZXN0KTsKICAgIHdoaWxlKHRlc3QtLSkgewogICAgICAgIHZlYy5jbGVhcigpOwogICAgICAgIGxsIGJsWCxibFksdHJYLHRyWTsKICAgICAgICBzY2FuZigiJWxsZCAlbGxkICVsbGQgJWxsZCIsJmJsWCwmYmxZLCZ0clgsJnRyWSk7CgogICAgICAgIGludCBuOwogICAgICAgIHNjYW5mKCIlZCIsJm4pOwogICAgICAgIGlmKG4gPiAxMDAwKSB7CiAgICAgICAgICAgIGFzc2VydCgwKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCBuIDsgaSsrKSB7CiAgICAgICAgICAgIGxsIHgseTsKICAgICAgICAgICAgc2NhbmYoIiVsbGQgJWxsZCIsJngsJnkpOwogICAgICAgICAgICBpZih4IDw9IDAgfHwgeSA8PSAwIHx8IHggPj0gbXggfHwgeSA+PSBteCkgewogICAgICAgICAgICAgICAgYXNzZXJ0KDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZlYy5wdXNoX2JhY2sobXAoeCx5KSk7CiAgICAgICAgICAgIGlzTGVmdEZyb21Qb3NpdGl2ZURpYWdbaV0gPSBmYWxzZTsKICAgICAgICAgICAgaXNMZWZ0RnJvbU5lZ2F0aXZlRGlhZ1tpXSA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICAvLyByZWYgcG9pbnQgaXMgYmxYLGJsWQogICAgICAgIC8vIHJlZiBsaW5lIGlzIGJsWCxibFkgdG8gdHJYLHRyWQogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykgewogICAgICAgICAgICBsbCB4MSx5MSx4Mix5MjsKICAgICAgICAgICAgeDEgPSB0clgtYmxYOwogICAgICAgICAgICB5MSA9IHRyWS1ibFk7CiAgICAgICAgICAgIHgyID0gdmVjW2ldLkYgLSBibFg7CiAgICAgICAgICAgIHkyID0gdmVjW2ldLlMgLSBibFk7CiAgICAgICAgICAgIGlzTGVmdEZyb21Qb3NpdGl2ZURpYWdbaV0gPSBpc0NvdW50ZXJDbG9ja3dpc2UoeDEseTEseDIseTIpOwogICAgICAgIH0KICAgICAgICAvLyByZWYgcG9pbnQgaXMgdHJYLGJsWQogICAgICAgIC8vIHJlZiBsaW5lIGlzIHRyWCxibFkgdG8gYmxYLHRyWQogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykgewogICAgICAgICAgICBsbCB4MSx5MSx4Mix5MjsKICAgICAgICAgICAgeDEgPSBibFgtdHJYOwogICAgICAgICAgICB5MSA9IHRyWS1ibFk7CiAgICAgICAgICAgIHgyID0gdmVjW2ldLkYgLSB0clg7CiAgICAgICAgICAgIHkyID0gdmVjW2ldLlMgLSBibFk7CiAgICAgICAgICAgIGlzTGVmdEZyb21OZWdhdGl2ZURpYWdbaV0gPSBpc0NvdW50ZXJDbG9ja3dpc2UoeDEseTEseDIseTIpOwogICAgICAgIH0KICAgICAgICBpbnQgbGZ0LCB1cCAsIHJodCAsIGRvd247CiAgICAgICAgbGZ0ID0gdXAgPSByaHQgPSBkb3duID0gMDsKCiAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCBuIDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChpc0xlZnRGcm9tUG9zaXRpdmVEaWFnW2ldID09IHRydWUgJiYgaXNMZWZ0RnJvbU5lZ2F0aXZlRGlhZ1tpXSA9PSB0cnVlICkgewogICAgICAgICAgICAgICAgbGZ0Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoaXNMZWZ0RnJvbVBvc2l0aXZlRGlhZ1tpXSA9PSB0cnVlICYmIGlzTGVmdEZyb21OZWdhdGl2ZURpYWdbaV0gPT0gZmFsc2UgKSB7CiAgICAgICAgICAgICAgICB1cCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGlzTGVmdEZyb21Qb3NpdGl2ZURpYWdbaV0gPT0gZmFsc2UgJiYgaXNMZWZ0RnJvbU5lZ2F0aXZlRGlhZ1tpXSA9PSBmYWxzZSApIHsKICAgICAgICAgICAgICAgIHJodCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgZG93bisrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFzc2VydChsZnQrdXArcmh0K2Rvd24gPT0gbik7CiAgICAgICAgcHJpbnRmKCIlZCAlZCAlZCAlZFxuIixsZnQsdXAscmh0LGRvd24pOwogICAgfQp9Cg==