#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",(polyg[i]).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+IHBvbHlnOwoJc2NhbmYoIiVkIiwmbik7Cgl3aGlsZShuLS0pewoJCXNjYW5mKCIlZiVmIiwmeCwmeSk7CgkJcG9seWcucHVzaF9iYWNrKFB0KHgseSkpOwoJCXByaW50ZigiJWZcbiIsKHBvbHlnW2ldKS55KTsKCX0KCXByaW50ZigiJWQiLHBvbHlnLnNpemUoKSk7Cm1hcDxsb25nIGRvdWJsZSxpbnQ+IGN0Owpmb3IoaW50IGk9MDtpPHBvbHlnLnNpemUoKTtpKyspCnsKCQoJY3QuY2xlYXIoKTsKCWZvcihpbnQgaj0wO2o8cG9seWcuc2l6ZSgpO2orKykKCXsKCQkKCQlpZihqIT1pKSB7Ly9jdFsocG9seWdbaV0tcG9seWdbal0pLmFuZ2xlKCldKys7CgkJcHJpbnRmKCIlZlxuIiwocG9seWdbaV0pLnkpOwp9Cgl9CiAgICBpbnQgYT0wOwoJaW50IGFucz0xMDAwMDA7CgltYXA8bG9uZyBkb3VibGUsaW50Pjo6aXRlcmF0b3IgaXQsanQ7CglpdD1jdC5iZWdpbigpOwoJanQ9Y3QuYmVnaW4oKTsKCWZvcig7aXQhPWN0LmVuZCgpO2l0KyspewoJYT0wOwoJd2hpbGUoanQtPmZpcnN0IDwgMTgwK2l0LT5maXJzdCkKCXsKCQlhKz1qdC0+c2Vjb25kOwoJCWp0Kys7Cgl9CglpZihhPGFucykgYW5zPWE7CiAgIGEtPWl0LT5zZWNvbmQ7CiAgIAoJfQoJLy9wcmludGYoIiVkPSIsYW5zKTsKfQp9