#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <complex>
#include <cmath>
using namespace std;

#define REP(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()

const double EPS = 1e-8;
const double INF = 1e12;
const double PI = 3.1415926535;

typedef complex<double> P;
namespace std {
  bool operator < (const P& a, const P& b) {
    return real(a) != real(b) ? real(a) < real(b) : imag(a) < imag(b);
  }
}
double ang(P a, P b) {        // xNg©çÝ½xNgÌpxÌvZ[0,2pi]
  double arga = (arg(a) >= 0) ? arg(a) : arg(a) + 2*PI;
  double argb = (arg(b) >= 0) ? arg(b) : arg(b) + 2*PI;
  double ret = argb-arga;
  return (ret>=0) ? ret : ret + 2*PI;
}

int main() {
  int n;

  while(cin >> n,n) {
    vector<P> v;
    REP(i,n) {
      double x,y;
      scanf("%lf,%lf\n", &x,&y);
      v.push_back(P(x,y));
    }
    P np = *min_element(ALL(v)); // ÀWªêÔ¬³¢àÌ
    P nv(0,-1);
//    int mp = min_element(ALL(v))-v.begin();
    int mp = 0;
    P sp = np;
    int ans = n;
    do {
      double ma = 2*PI;
      REP(i,v.size()) {
        if (v[i]==np) continue;
        if(ma>ang(nv,v[i]-np)) {
          ma = ang(nv,v[i]-np);
          mp = i;
        }
      }
      nv = v[mp]-np;
      np = v[mp];
      ans--;
    } while(np!=sp);
    cout << ans << endl;
  }
}