#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("%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+IHBvbHlnOwoJc2NhbmYoIiVkIiwmbik7Cgl3aGlsZShuLS0pewoJCXNjYW5mKCIlZiVmIiwmeCwmeSk7CgkJcG9seWcucHVzaF9iYWNrKFB0KHgseSkpOwoJCQoJfQoJcHJpbnRmKCIlZCIscG9seWcuc2l6ZSgpKTsKbWFwPGxvbmcgZG91YmxlLGludD4gY3Q7CmZvcihpbnQgaT0wO2k8cG9seWcuc2l6ZSgpO2krKykKewoJCgljdC5jbGVhcigpOwoJZm9yKGludCBqPTA7ajxwb2x5Zy5zaXplKCk7aisrKQoJewoJCQoJCWlmKGohPWkpIHsvL2N0Wyhwb2x5Z1tpXS1wb2x5Z1tqXSkuYW5nbGUoKV0rKzsKCQlwcmludGYoIiVmXG4iLChwb2x5Z1tpXSkueSk7Cn0KCX0KICAgIGludCBhPTA7CglpbnQgYW5zPTEwMDAwMDsKCW1hcDxsb25nIGRvdWJsZSxpbnQ+OjppdGVyYXRvciBpdCxqdDsKCWl0PWN0LmJlZ2luKCk7CglqdD1jdC5iZWdpbigpOwoJZm9yKDtpdCE9Y3QuZW5kKCk7aXQrKyl7CglhPTA7Cgl3aGlsZShqdC0+Zmlyc3QgPCAxODAraXQtPmZpcnN0KQoJewoJCWErPWp0LT5zZWNvbmQ7CgkJanQrKzsKCX0KCWlmKGE8YW5zKSBhbnM9YTsKICAgYS09aXQtPnNlY29uZDsKICAgCgl9CgkvL3ByaW50ZigiJWQ9IixhbnMpOwp9Cn0=