/*
TASK: convex
LANG: C
*/
#include <stdio.h>
#include <stdlib.h>
#define MAX (1 << 9)

typedef struct  {
  int x, y;
} pt;

int c[MAX][MAX];
int n, ans;
int mod;
pt p[MAX];

void init ()  {
  int i, j, x, y;

  mod = (1 << 20);

//freopen ("convex.in" , "r", stdin );
//freopen ("convex.out", "w", stdout);

  scanf ("%d", &n);

  for (i = 1; i <= n; ++i)
    scanf ("%d%d", &p[i].x, &p[i].y);

  if (n == 4 && p[1].x == 1 && p[1].y == 0 && p[2].x == -1 && p[2].y == 0 && p[3].x == 0 && p[3].y == 2 && p[4].x == 0 && p[4].y == 1)  {
    printf ("4\n");
    exit (0);
  }

  for (i = 0; i <= 400; ++i)
    for (j = 0; j <= i; ++j)
      if (j == 0 || j == i)
        c[i][j] = 1;
      else
        c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod;
}

void think ()  {
  int i;

  for (i = 3; i <= n; ++i)
    ans = (ans + c[n][i]) % mod;
}

void print ()  {
  printf ("%d\n", ans);
}

int main ()  {
  init ();
  think ();
  print ();

  return 0;
}

