/*
TASK:convex
LANG:C++
*/

#include <stdio.h>
#include <math.h>

#define     MAXN    400
#define     INF     100000

struct p{int x, y;};
double atan2s[MAXN][MAXN];

int N, res;
struct p pts[MAXN];

int used[MAXN];

int begp;
// /*
/*int betw(double atan1, double atan2, double atan3){
    if(atan2-atan1
}   */

void findall(int cur, double lasttan){
     int i;
     used[cur]=1;
     if(cur!=begp) res++;
     for(i=0;i<N;i++){
//      if(!used[i]&&atan2s[lasttan][cur]<atan2s[cur][i]&&
//         atan2s[cur][i]<atan2s[cur]
     }
     used[cur]=0;
}     //*/

int main(void){
    int i, j;
    scanf("%d", &N);
    for(i=0;i<N;i++) scanf("%d %d\n", &pts[i].x, &pts[i].y);
    for(i=0;i<N;i++) for(j=0;j<N;j++)
       atan2s[i][j]=atan2(pts[j].y-pts[i].y, pts[j].x-pts[i].x);
/*    while(N>2){
     begp=N-1;
//     findall(N-1);
     N--;
    }*/
    printf("%d\n", N+1);
    //printf("%lf\n", atand2(0,2));
    return 0;
}
