#!/usr/bin/env ruby
# -*- coding:utf-8 -*-

module Geometry
  EPS = 1e-6
  class Point
    attr_accessor :x, :y
    
    def initialize(x = 0.0, y = 0.0)
      @x = x
      @y = y
    end
  
    def abs()
      return Math.sqrt(x*x + y*y)
    end
    
    def dot(p)
      return x * p.x + y * p.y
    end
    
    def cross(p)
      return x * p.y - y * p.x
    end
  
    def norm()
      return x*x + y*y
    end
    
    def -(p)
      return Point.new(x-p.x,y-p.y)
    end 
  end
  
  def ccw(a,b,c)
    b-=a
    c-=a
    return +1 if b.cross(c) > EPS
    return -1 if b.cross(c) < -EPS
    return +2 if b.dot(c) < -EPS
    return -2 if b.norm() < c.norm()
    return 0
  end

  def convex_hull(ps)
    n, k = ps.length(), 0
    ps.sort!{|a,b| 
              if a.x != b.x
                a.y <=> b.y
              else
                a.x <=> b.x
              end
            }
    ch = Array.new(n * 2)
    i = 0
    while i < n
      k -= 1 while (k >= 2 && ccw(ch[k-2], ch[k-1], ps[i]) <= 0)
      ch[k] = ps[i]
      k, i = k + 1, i + 1
    end
    i,t = n - 2,k + 1
    while i >= 0
      k -= 1 while (k >= t && ccw(ch[k-2], ch[k-1], ps[i]) <= 0)
      ch[k] = ps [i]
      k, i = k + 1, i - 1
    end
    ch = ch[0...(k-1)]
    return ch
  end
end

include Geometry

n = 0
while (n = gets.to_i) > 0
  pts = []
  n.times do 
    x ,y = gets.split(',').map(&:to_f)
    pts.push(Point.new(x,y))
  end
  puts n - convex_hull(pts).size
end