#include<stdio.h>
#include<iostream>
#include<fstream>
#include<iomanip>
#include<float.h>
#include<math.h>
using namespace std;

template <class T>
class _Point{
public:
	T x;
	T y;
	_Point(){}
	_Point(T _x, T _y) :x(_x), y(_y){}
	_Point(const _Point & v) :x(v.x), y(v.y){}

	const _Point operator + (const _Point & v)
	{
		return _Point(x+v.x,y+v.y);
	}
	const _Point operator - (const _Point & v)
	{
		return _Point(x - v.x, y - v.y);
	}
	T abs() const {
		return sqrt(x*x + y*y);
	}
	_Point unit() const{
		T len = abs();
		return _Point(x / len, y / len);
	}
	T operator*(const _Point &v) const
	{
		return x * v.x + y * v.y;
	}
	const _Point operator*(const T &len) const
	{
		return _Point(len * x, len * y);
	}
};
typedef double R;
typedef _Point<R> Point;
typedef Point Vector;

int main(){
	std::istream & c_in = cin;

	Point p0, p1;
	c_in >> p0.x >> p0.y >> p1.x >> p1.y;
	Vector P10(p1 - p0);
	Vector e10(P10.unit());

	int q;
	c_in >> q;
	for (int i = 0; i < q; ++i)
	{
		Point p2;
		c_in >> p2.x >> p2.y;

		Vector P20 = p2 - p0;
		Vector e20(P20.unit());
		bool zero = P20.abs() < DBL_EPSILON*16;
		R projection = e10*e20;
		if (zero)
		{
			//(5)
			cout << "ON_SEGMENT";
		}
		else if (fabs(projection) > 1 - DBL_EPSILON * 16)
		{
			//??´???
			if (projection > 0)
			{
				if (P20.abs() <= P10.abs())
				{
					//(5)
					cout << "ON_SEGMENT";
				}
				else {
					//(4)
					cout << "ONLINE_FRONT";
				}
			}
			else
			{
				//(3)
				cout << "ONLINE_BACK";

			}
		}
		else
		{
			Vector ey(-e10.y, e10.x);
			R projection2 = ey*P20;
			if (projection2 > 0)
			{
				//???????¨??????????????????´??? (1) 
				cout << "COUNTER_CLOCKWISE";
			}
			else
			{
				//????¨??????????????????´???(2) 
				cout << "CLOCKWISE";
			}
		}
		cout << endl;

	}
}