#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#define EPS 1e-10
using namespace std;
int n;

double add(double a ,double b){
  if(abs(a+b)<EPS*(abs(a)+abs(b)))return 0;
  return a+b;
}

class P{
public:
  double x,y;

  P(){}
  P(double x,double y):x(x),y(y){}

  P operator + (P p){
    return P(add(x,p.x),add(y,p.y));
  }
  P operator - (P p){
    return P(add(x,-p.x),add(y,-p.y));
  }
  P operator * (double d){
    return P(x*d,y*d);
  }
  double dot(P p){
    return add(x*p.x,y*p.y);
  }
  double det(P p){
    return add(x*p.y,-y*p.x);
  }
};
  bool cmp_x(const P& p,const P& q){
    if(p.x != q.x)return p.x < q.x;
    return p.y < q.y;
  }

vector<P> convex_hull(vector<P> ps,int n){

  sort(ps.begin(),ps.end(),cmp_x);
  int k = 0;
  vector<P> qs(2*n);
  for(int i = 0 ; i < n ; i++ ){
    while( k > 1 && (qs[k-2]-qs[k-1]).det(qs[k-1]-ps[i])<= 0)k--;
    qs[k++] = ps[i];
  }
  for(int i = n-2 ,t = k ; i >= 0 ; i--  ){
    while(k > t && (qs[k-1]-qs[k-2]).det(ps[i]-qs[k-1]) <= 0)k--;
    qs[k++] = ps[i];
  }
  qs.resize(k-1);
  return qs;
}

int main(){
  while( cin >> n , n){
    vector<P>p;
    p.clear();
    for(int i = 0 ; i < n ; i++ )
      {
	double a,b;
	char c; 
	cin >> a >> c >> b;
	p.push_back(P(a,b));
      }

    vector<P> q = convex_hull(p,n);
    cout <<  p.size() - q.size() << endl;
  }
  return 0;
}