<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<stdio.h>
#include<math.h>

#define EPS (1e-10)
#define equals(a,b) (fabs((a)-(b)) < EPS)

class Point{
public:
  double x,y;
  
  Point(double x=0,double y=0): x(x),y(y) {}
  
  Point operator + (Point p) { return Point(x+p.x,y+p.y); }
  Point operator - (Point p) { return Point(x-p.x,y-p.y); }
  Point operator * (double a) { return Point(a*x,a*y); }
  Point operator / (double a) { return Point(a/x,a/y); }
  
  double abs() { return sqrt(norm()); }
  double norm() { return x*x+y*y; }
  
  bool operator < (const Point &p) const {
    return x != p.x ? x < p.x : y < p.y;
  }

  bool operator == (const Point &p) const {
    return fabs(x-p.x) < EPS && fabs(y-p.y) < EPS;
  }

};

typedef Point Vector;

double dot(Vector a,Vector b){
  return a.x * b.x + a.y * b.y;
}

double cross(Vector a,Vector b){
  return a.x * b.y - a.y * b.x;
}

int main(){
  
  double x0,y0,x1,y1,x,y,cr;
  Point p0,p1,p2;
  Vector a,b;
  int q;
  
  scanf("%lf %lf %lf %lf",&x0,&y0,&x1,&y1);
  p0 = Point(x0,y0);
  p1 = Point(x1,y1);

  scanf("%d",&q);
  for(int i=0;i<q;i++){
    
    scanf("%lf %lf",&x,&y);
    p2 = Point(x,y);
    
    a = p1-p0;
    b = p2-p0;
    
    cr = cross(a,b);
    
    if(cr > EPS) puts("COUNTER_CLOCKWISE" );
    else if(cr < -EPS) puts("CLOCKWISE");
    else if(dot(a,b) < -EPS) puts("ONLINE_BACK");
    else if(a.abs()<b.abs()) puts("ONLINE_FRONT");
    else puts("ON_SEGMENT");
    
  }
  
  return(0);
}

