#include <iostream>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <complex>
#include <cstdio>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

#define INF 1e9
#define rep(i,n) for(int i=0;i<n;i++)

typedef complex<double> P;

bool used[100];
char c;
int n;
double x,y;
P p[100];

double dot(P a, P b) {
  return (a.real() * b.real() + a.imag() * b.imag());
}

int main(){
	while(cin>>n&&n){
		fill(used,used+100,0);
		int mx,my=INF,m;
		rep(i,n){
			cin>>x>>c>>y;
			p[i]=P(x,y);
			if(y<my||y==my&&x<mx){my=y;mx=x;m=i;}
		}
		int ans=n,prv=-1;
		P v(1,0);
		while(!used[m]){
			used[m]=1;
			ans--;
			int nx;
			double M=-2;
			rep(i,n)if(i!=m&&i!=prv&&dot(v,(p[i]-p[m])/abs(p[i]-p[m]))>M){M=dot(v,(p[i]-p[m])/abs(p[i]-p[m]));nx=i;}
			v=(p[nx]-p[m])/abs(p[nx]-p[m]);
			//cout<<p[nx]<<" "<<v<<" "<<M<<endl;
			prv=m;
			m=nx;
		}
		cout<<ans<<endl;
	}
}