<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 <cmath>
using namespace std;

#define EPS (1e-10)

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 );
  }
 
  double abs(){
    return sqrt(norm());
  }
  double norm(){
    return x*x+y*y;
  }
};
 
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 - b.x*a.y;
}
 
int ccw( Point p0 , Point p1 , Point p2 ){
  Point a = p1 - p0;
  Point b = p2 - p0;
  if( cross(a,b) > EPS ) return 1;
  if( cross(a,b) < -EPS ) return -1;
  if( dot(a,b) < -EPS ) return 2;
  if( a.norm() < b.norm() ) return -2;
  return 0;
}

int main(){
  Point p0,p1,p2;
  int n;

  cin >> p0.x >> p0.y >> p1.x >> p1.y;
  cin >> n;
  for(int i = 0 ; i < n ; i++){
    cin >> p2.x >> p2.y;

    switch(ccw(p0,p1,p2)){
    case 1:
      cout << "COUNTER_CLOCKWISE" << endl;
      break;
    case -1:
      cout << "CLOCKWISE" << endl;
      break;
    case 2:
      cout << "ONLINE_BACK" << endl;
      break;
    case -2:
      cout << "ONLINE_FRONT" << endl;
      break;
    default:
      cout << "ON_SEGMENT" << endl;
      break;
    }
  }

  return 0;
}