#include<bits/stdc++.h>
using namespace std;
template <class T> int sgn(T x) { return (x > 0) - (x < 0); }
template<class T>
struct Point {
typedef Point P;
T x, y;
explicit Point(T x=0, T y=0) : x(x), y(y) {}
bool operator<(P p) const { return tie(x,y) < tie(p.x,p.y); }
bool operator==(P p) const { return tie(x,y)==tie(p.x,p.y); }
P operator+(P p) const { return P(x+p.x, y+p.y); }
P operator-(P p) const { return P(x-p.x, y-p.y); }
P operator*(T d) const { return P(x*d, y*d); }
P operator/(T d) const { return P(x/d, y/d); }
T dot(P p) const { return x*p.x + y*p.y; }
T cross(P p) const { return x*p.y - y*p.x; }
T cross(P a, P b) const { return (a-*this).cross(b-*this); }
T dist2() const { return x*x + y*y; }
double dist() const { return sqrt((double)dist2()); }
// angle to x-axis in interval [-pi, pi]
double angle() const { return atan2(y, x); }
double angledegree() const { return atan2(y, x) * 180.0 / acos(-1); }
P unit() const { return *this/dist(); } // makes dist()=1
P perp() const { return P(-y, x); } // rotates +90 degrees
P normal() const { return perp().unit(); }
// returns point rotated 'a' radians ccw around the origin
P rotate(double a) const {
return P(x*cos(a)-y*sin(a),x*sin(a)+y*cos(a)); }
friend ostream& operator<<(ostream& os, P p) {
return os << "(" << p.x << "," << p.y << ")"; }
};
void solve(){
Point<double> a, b; cin >> a.x >> a.y >> b.x >> b.y;
b = b - a;
double alpha = b.angledegree();
int qq; cin >> qq;
for(int q = 0; q < qq; q++) {
Point<double> p; cin >> p.x >> p.y;
p = p - a;
double beta = p.angledegree();
beta -= alpha;
if(abs(0 - beta) < 1e-6){
double d1 = b.dist2();
double d2 = p.dist2();
if(d1 > d2) cout << "ON_SEGMENT\n";
else cout << "ONLINE_FRONT\n";
}
else if(abs(180 - abs(beta)) < 1e-6) cout << "ONLINE_BACK\n";
else {
if(beta > 0) cout << "COUNTER_CLOCKWISE\n";
else cout << "CLOCKWISE\n";
}
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cout << fixed << setprecision(8);
solve();
}