<image>

For given three points p0, p1, p2, print


COUNTER_CLOCKWISE


if p0, p1, p2 make a counterclockwise turn (1),


CLOCKWISE


if p0, p1, p2 make a clockwise turn (2),


ONLINE_BACK


if p2 is on a line p2, p0, p1 in this order (3),


ONLINE_FRONT


if p2 is on a line p0, p1, p2 in this order (4),


ON_SEGMENT


if p2 is on a segment p0p1 (5).

Constraints

* 1 ≤ q ≤ 1000
* -10000 ≤ xi, yi ≤ 10000
* p0 and p1 are not identical.

Input


xp0 yp0 xp1 yp1
q
xp20 yp20
xp21 yp21
...
xp2q-1 yp2q-1


In the first line, integer coordinates of p0 and p1 are given. Then, q queries are given for integer coordinates of p2.

Output

For each query, print the above mentioned status.

Examples

Input

0 0 2 0
2
-1 1
-1 -1


Output

COUNTER_CLOCKWISE
CLOCKWISE


Input

0 0 2 0
3
-1 0
0 0
3 0


Output

ONLINE_BACK
ON_SEGMENT
ONLINE_FRONT
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); i++)
#define repd(i,a,b) for (int i = (a); i < (b); i++)
#define INF LLONG_MAX
#define ERR 0.00000001
typedef long long ll;
double gaiseki(double x1, double y1, double x2, double y2)
{
	return x1*y2 - x2*y1;
}

double naiseki(double x1, double y1, double x2, double y2)
{
	return x1*x2 + y1*y2;
}

double vector_size(double x, double y)
{
	return pow(x*x + y*y, 0.5);
}

int main(void)
{
	double a, b, c, d, e, f, p0p1_x, p0p1_y, p0p2_x, p0p2_y,
	nai, gai, p0p1_size, p0p2_size, judge;
	cin >> a >> b >> c >> d;
  p0p1_x = c - a;
  p0p1_y = d - b;
  	p0p1_size = vector_size(p0p1_x, p0p1_y);
	int q;
	cin >> q;
	rep(i, q)
	{
		cin >> e >> f;
    p0p2_x = e - a;
    p0p2_y = f - b;
		gai = gaiseki(p0p1_x, p0p1_y, p0p2_x, p0p2_y);
		if(gai<0) cout << "CLOCKWISE";
		else if(gai>0) cout << "COUNTER_CLOCKWISE";
		else
		{
			nai = naiseki(p0p1_x, p0p1_y, p0p2_x, p0p2_y);
			p0p2_size = vector_size(p0p2_x, p0p2_y);
			judge = nai/(p0p1_size*p0p2_size);
			if(judge<0) cout << "ONLINE_BACK";
			else
			{
				if(p0p1_size<p0p2_size) cout << "ONLINE_FRONT";
				else cout << "ON_SEGMENT";
			}
		}
		cout << endl;
		//cout << gai <<" "<< nai<< " "<< p0p1_size <<" "<< p0p2_size << " " <<judge<< endl;
	}
	return 0;
}

