#include<iostream>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<fstream>
using namespace std;
#define eps 1e-6
struct node
{
int x,y;
}Queue[55];
double Dis(node a,node b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
double Mul(node a,node b,node c)
{
return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
}
int Cmp(node a,node b)
{
if(Mul(Queue[0],a,b)==0)
return Dis(Queue[0],a)<Dis(Queue[0],b);
else
return Mul(Queue[0],a,b)>Mul(Queue[0],b,a);
}
int main()
{
int i=0;
int x1,y1;
while(cin>>x1>>y1)
{
Queue[i].x=x1;
Queue[i].y=y1;
i++;
}
sort(Queue+1,Queue+i,Cmp);
for(int j=0;j<i;j++)
{
printf("(%d,%d)\n",Queue[j].x,Queue[j].y);
}
return 0;
}