<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 X real()
#define Y imag()

using Vector2 = complex<double>;
const double EPS = 1e-8;
const double PI = 3.14159265359;

// Vector2
double dot(Vector2 a, Vector2 b){
    return (a.X * b.X + a.Y * b.Y);
}

double cross(Vector2 a, Vector2 b){
    return (a.X * b.Y - a.Y * b.X);
}

int ccw(Vector2 p1, Vector2 p2, Vector2 p3){
    Vector2 a = p2 - p1;
    Vector2 b = p3 - p1;
    double dotValue = dot(a, b);
    double crossValue = cross(a, b);
    if(crossValue > EPS) return 1;  // anticlockwise
    if(crossValue < -EPS) return -1;    // clockwise
    if(dotValue < -EPS) return 2;   // p2-p1-p3
    if(norm(a) < norm(b)) return -2;    // p1-p2-p3
    return 0;   // p1-p3-p2
}

int main(){

    int x0, y0, x1, y1;
    cin >> x0 >> y0 >> x1 >> y1;
    Vector2 p0(x0, y0);
    Vector2 p1(x1, y1);

    int q;
    cin >> q;
    for(int i = 0; i < q; i++){
        int x, y;
        cin >> x >> y;
        Vector2 p(x, y);
        int temp = ccw(p0, p1, p);
        if(temp == 1){
            cout << "COUNTER_CLOCKWISE" << endl;
        }
        else if(temp == -1){
            cout << "CLOCKWISE" << endl;
        }
        else if(temp == 2){
            cout << "ONLINE_BACK" << endl;
        }
        else if(temp == -2){
            cout << "ONLINE_FRONT" << endl;
        }
        else{
            cout << "ON_SEGMENT" << endl;
        }
    }

    return 0;
}
