#include<bits/stdc++.h>
using namespace std;

typedef complex<double> P;
const double EPS = 1e-8;
const P INF = P(-1E8,-1E8);
vector<P> v;
int N;

double dot(P a, P b){ return real(conj(a)*b); }
double cross(P a, P b){ return imag(conj(a)*b); }

namespace std {
  bool operator < (const P& a, const P& b){
    return fabs(real(a)-real(b)) < EPS ? imag(a) < imag(b) : real(a) < real(b);
  }
  bool operator > (const P& a, const P& b){
    return fabs(real(a)-real(b)) > EPS ? imag(a) > imag(b) : real(a) > real(b);
  }
}

//  a -> b -> c ?????????????????? b -> c ?????????
int ccw(P a, P b, P c){
  b -= a;
  c -= a;
  if(cross(b,c) > EPS) return 1; //???????¨???????
  if(cross(b,c) < -EPS) return -1; // ????¨???????
  if(dot(b,c) < -EPS) return 2; // c -- a -- b ????????´???
  if(norm(b) < norm(c)) return -2; // a -- b -- c ????????´???
  return 0; // a -- c -- b ????????´????
}

double getAngle(P a,P b){
  return atan2(b.imag()-a.imag(),b.real()-a.real());
}

P getNextP(P a,P b,int *flag){
  double ang = getAngle(a,b);
  if( ang < -EPS ) 2*M_PI + ang;
  int p=-1;
  double pa=0;
  // cout << ang*180.0/M_PI << endl;
  for(int i=0;i<N;i++){
    if( ccw( a, b, v[i] ) == -1 ){
      double na = getAngle(b,v[i]);
      if( na < -EPS ) 2 * M_PI + ang;
      // cout << b << " -> " << v[i] << " "<< na/M_PI*180.0 << endl;
      double x = abs( ang - na );
      double y = abs( ang - pa );
      if( x > M_PI ) x = abs( ang + 2 * M_PI - na );
      if( y > M_PI ) y = abs( ang + 2 * M_PI - pa );
      if( p == -1 || x < y  ){
        pa = na;
        p = i;
      }
    }
  }
  if( flag[p] ) return INF;
  flag[p] = 1;
  return v[p];
}

int main(){
  while( cin >> N && N ){
    int px=0;
    v.clear();
    for(int i=0;i<N;i++){
      double x,y;
      scanf("%lf,%lf",&x,&y);
      v.push_back( P(x,y) );
      //  cout << v[i] << endl;
      if( v[i].real() < v[px].real() ) 
        px = i;
    }

    if(N < 4 ){
      cout << 0 << endl;
    } else {
      P now = v[px];
      P vn = v[px] + P(0,-1.0);
      int flag[111]={};
      flag[px] = 1;
      vn = getNextP(vn,v[px],flag);
      while(INF/10.0 < vn){
        // cout << now << " "<< vn << endl;
        P nex = getNextP(now,vn,flag);
        now = vn; vn = nex;
      }
      int res = 0;
      for(int i=0;i<N;i++)
        if(!flag[i]) res++;      
      printf("%d\n",res);
    }
  }
}