#include <bits/stdc++.h>
#include <iomanip>    

using namespace std;

struct Point
{
	int x;
	int y;
};
int dotProduct(Point a, Point b)
{
	return a.x*b.x+a.y*b.y;
}
int lengthSquared(Point a)
{
	return pow(a.x,2)+pow(a.y,2); 
}
int main()
{ int q; int p1x,p1y,p2x,p2y;
	int q1x,q1y;
	cin>>p1x>>p1y>>p2x>>p2y;
	cin>>q;
	struct Point p = {p2x-p1x, p2y-p1y};

	for(int i=0;i<q;i++)
	{
		cin>>q1x>>q1y;
		struct Point q = {q1x-p1x, q1y-p1y};
		double val;
		if(lengthSquared(p)==0) val = 0.0f;
		else val = double(dotProduct(p,q))/double(lengthSquared(p));
		double x = val*p.x+p1x;
		double y = val*p.y+p1y;
		if(x==0) x=0.0f;
		if(y==0) y=0.0f;
		cout<<fixed<<setprecision(10)<<x<<" "<<y<<endl;
	}
}

