module mod_convex_score
  implicit none
  integer(8), parameter :: md = 998244353_8
contains
  integer(8) function score(k)
    implicit none
    integer, intent(in) :: k
    score = mod(pow(2_8,k)+md-mod(int(k+1,8),md),md)
    return
  end function score
  recursive function pow(a,b) result(p)
    implicit none
    integer(8), intent(in) :: a
    integer, intent(in) :: b
    integer(8) :: p
    p = 1_8
    if (b.eq.0) return
    if (mod(b,2).eq.0) then
      p = pow(a,b/2)
      p = mod(p*p,md)
      return
    end if
    p = mod(a*pow(a,b-1),md)
    return
  end function pow
  function inv(n) result(y)
    implicit none
    integer(8), intent(in) :: n
    integer(8) :: a, b, x, y, t, q
    a = mod(n,md)
    b = md
    x = 0
    y = 1
    do while(b.ne.0_8)
      q = a/b
      t = b
      b = mod(a,b)
      a = t
      t = y
      y = x
      x = t-q*x
    end do
    do while (y.lt.0_8)
      y = y+md
    end do
    y = mod(y,md)
    return
  end function inv
end module mod_convex_score
program convex_score
  use mod_convex_score
  implicit none
  integer :: n, x(200), y(200), a, b, c, i, j, k, s
  integer(8) :: m, p
  x = 0
  y = 0
  read(*,*) n
  do i = 1, n
    read(*,*) x(i), y(i)
  end do
  m = score(n)
  do i = 1, n-1
    do j = i+1, n
      a = y(j)-y(i)
      b = -x(j)+x(i)
      c = x(j)*y(i)-x(i)*y(j)
      s = 0
      do k = 1, n
        if (a*x(k)+b*y(k)+c.eq.0) s = s+1
      end do
      p = score(s)
      p = mod(p*inv(int(s,8)*int(s-1,8)/2_8),md)
      m = mod(m+md-p,md)
    end do
  end do
  write(*,'(i0)') m
  stop
end program convex_score