<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 <iostream>
#include <cstdio>
#include <math.h>
#include <cstring>
#include <algorithm>
using namespace std;
#define EPS (1e-10)
struct point
{
	double x, y;
	point(double a = 0, double b = 0):x(a),y(b){}
};
typedef point Point;
Point operator +(Point a, Point b){
	return Point(a.x + b.x, a.y + b.y);
}
Point operator -(Point a, Point b){
	return Point(a.x - b.x, a.y - b.y);
}
Point operator *(Point a, double k){
	return Point(a.x * k, a.y * k);
}
double norm(Point a){
	return a.x * a.x + a.y * a.y;
}
double abs(Point a){
	return sqrt(norm(a));
}
double dot(Point a, Point b){
	return a.x * b.x + a.y * b.y;
}
double cross(Point a, Point b){
	return a.x * b.y - a.y * b.x;
}
const int COUNTER_CLOCKWISE = 1;
const int CLOCKWISE = -1;
const int ONLINE_BACK = 2;
const int ONLINE_FRONT = -2;
const int ON_SEGEMENT = 0;
int ccw(Point p0, Point p1, Point p2){
	Point a = p1 - p0;
	Point b = p2 - p0;
	if(cross(a,b) > EPS) return COUNTER_CLOCKWISE;
	if(cross(a,b) < -EPS) return CLOCKWISE;
	if(dot(a,b) < -EPS) return ONLINE_BACK;
	if(norm(a) < norm(b)) return ONLINE_FRONT;
	return ON_SEGEMENT;
}
int main(){
	int n;
	Point a, b;
	scanf("%lf %lf %lf %lf",&a.x, &a.y, &b.x, &b.y);
	scanf("%d",&n);
	while(n--){
		Point c;
		scanf("%lf %lf",&c.x, &c.y);
		int cnt = ccw(a, b, c);
		if(cnt == 1) printf("COUNTER_CLOCKWISE\n");
		else if(cnt == -1) printf("CLOCKWISE\n");
		else if(cnt == 2) printf("ONLINE_BACK\n");
		else if(cnt == -2) printf("ONLINE_FRONT\n");
		else printf("ON_SEGMENT\n");
	}
	return 0;
}
