#include <cstdio>
#include <math.h>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
class Pt{
public:
long double x,y;
Pt(){x=y=0;}
Pt(long double a,long double b){x=a,y=b;
}
bool operator<(const Pt P) const
{
if(x!=P.x) return x<P.x;
else return y<P.y;
}
Pt operator-(const Pt P)
{
return(Pt(this->x-P.x,this->y-P.y));
}
long double angle(){
if(x==0) if(y>0) return 90;
else return -90;
else return atan(y/x)*180/3.141592653589793238L;
}
};
int main()
{
int n;
long double x,y;
vector<Pt> polyg;
scanf("%d",&n);
while(n--){
scanf("%f%f",&x,&y);
polyg.push_back(Pt(x,y));
printf("%f\n",y);
}
printf("%d",polyg.size());
map<long double,int> ct;
for(int i=0;i<polyg.size();i++)
{
ct.clear();
for(int j=0;j<polyg.size();j++)
{
if(j!=i) {//ct[(polyg[i]-polyg[j]).angle()]++;
printf("%f\n",(polyg[i]).y);
}
}
int a=0;
int ans=100000;
map<long double,int>::iterator it,jt;
it=ct.begin();
jt=ct.begin();
for(;it!=ct.end();it++){
a=0;
while(jt->first < 180+it->first)
{
a+=jt->second;
jt++;
}
if(a<ans) ans=a;
a-=it->second;
}
//printf("%d=",ans);
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPG1hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgUHR7CglwdWJsaWM6Cglsb25nIGRvdWJsZSB4LHk7CiAgICBQdCgpe3g9eT0wO30KCVB0KGxvbmcgZG91YmxlIGEsbG9uZyBkb3VibGUgYil7eD1hLHk9YjsKCX0KCWJvb2wgb3BlcmF0b3I8KGNvbnN0IFB0IFApIGNvbnN0CQoJeyAgIAoJaWYoeCE9UC54KSByZXR1cm4geDxQLng7CgkJZWxzZSByZXR1cm4geTxQLnk7CgkJCgl9CgkKCVB0IG9wZXJhdG9yLShjb25zdCBQdCBQKQoJewoJCXJldHVybihQdCh0aGlzLT54LVAueCx0aGlzLT55LVAueSkpOwoJCQoJCQoJfQoJbG9uZyBkb3VibGUgYW5nbGUoKXsKCQlpZih4PT0wKSBpZih5PjApIHJldHVybiA5MDsKCQllbHNlIHJldHVybiAtOTA7CgkJZWxzZSByZXR1cm4gYXRhbih5L3gpKjE4MC8zLjE0MTU5MjY1MzU4OTc5MzIzOEw7Cgl9Cn07CmludCBtYWluKCkKewoJaW50IG47Cglsb25nIGRvdWJsZSB4LHk7Cgl2ZWN0b3I8UHQ+IHBvbHlnOwoJc2NhbmYoIiVkIiwmbik7Cgl3aGlsZShuLS0pewoJCXNjYW5mKCIlZiVmIiwmeCwmeSk7CgkJcG9seWcucHVzaF9iYWNrKFB0KHgseSkpOwoJCXByaW50ZigiJWZcbiIseSk7Cgl9CglwcmludGYoIiVkIixwb2x5Zy5zaXplKCkpOwptYXA8bG9uZyBkb3VibGUsaW50PiBjdDsKZm9yKGludCBpPTA7aTxwb2x5Zy5zaXplKCk7aSsrKQp7CgkKCWN0LmNsZWFyKCk7Cglmb3IoaW50IGo9MDtqPHBvbHlnLnNpemUoKTtqKyspCgl7CgkJCgkJaWYoaiE9aSkgey8vY3RbKHBvbHlnW2ldLXBvbHlnW2pdKS5hbmdsZSgpXSsrOwoJCXByaW50ZigiJWZcbiIsKHBvbHlnW2ldKS55KTsKfQoJfQogICAgaW50IGE9MDsKCWludCBhbnM9MTAwMDAwOwoJbWFwPGxvbmcgZG91YmxlLGludD46Oml0ZXJhdG9yIGl0LGp0OwoJaXQ9Y3QuYmVnaW4oKTsKCWp0PWN0LmJlZ2luKCk7Cglmb3IoO2l0IT1jdC5lbmQoKTtpdCsrKXsKCWE9MDsKCXdoaWxlKGp0LT5maXJzdCA8IDE4MCtpdC0+Zmlyc3QpCgl7CgkJYSs9anQtPnNlY29uZDsKCQlqdCsrOwoJfQoJaWYoYTxhbnMpIGFucz1hOwogICBhLT1pdC0+c2Vjb25kOwogICAKCX0KCS8vcHJpbnRmKCIlZD0iLGFucyk7Cn0KfQ==