#include <iostream>
#include <vector>
#include <algorithm>
#include <complex>
#include <climits>
#include <cmath>
 
// 許容する誤差ε
#define EPS (1e-10)

//浮動小数点演算の誤差を考慮した比較を行うマクロ
//等しい(=)　!=を使いたい場合は、!EQとすればよい
#define EQ(x,y) (fabs((x) - (y)) < EPS)
//小なり(<)
#define LT(x,y) ((x) - (y) <= -EPS)
//小なりイコール(<=)
#define LE(x,y) ((x) - (y) < EPS)
//大なり(>)
#define GT(x,y) ((x) - (y) >= EPS)
//大なりイコール(<)
#define GE(x,y) ((x) - (y) > -EPS)

// 2つのベクトルが等しいかどうか
#define EQV(a,b) ( EQ((a).real(), (b).real()) && EQ((a).imag(), (b).imag()) )
// 円周率
#define PI (acos(-1.0))
//　0≦t＜PIの範囲で偏角を求める（通常のarg()は -PI≦t≦PI)
#define POSARG(a) (arg((a)) > 0.0? arg((a)) : 2.0*PI + arg((a)))

using namespace std;
typedef complex<double> P;

vector<P>::iterator wrapping_convex_hull(vector<P> vc)
{
	int undermost = 0;
	
	for(int i = 1; i < (int)vc.size(); i++)
	{
		if( LT(vc[i].imag(), vc[undermost].imag()) 
			||( EQ(vc[undermost].imag(), vc[i].imag()) && vc[undermost].real() < vc[i].real() ) )
		{
			undermost = i;
		}
	}	//get undermost(and rightmost) point of vc
	
	swap(vc[0], vc[undermost]); //now, vc[0] is the undermost point of vc

	double nowarg = 0.0;
	int j;
	
	for( j = 0; j < (int)vc.size()-1; j++)
	{
		double minarg = 2.0*PI;
		double maxdst = 0.0;
		int candidx = 0;
		
		for(int i = j+1; i < (int)vc.size(); i++)
		{
			double newarg = POSARG(vc[i] - vc[j]);
			double newdst = abs(vc[i] - vc[j]);
			
			if( GT(newarg, nowarg) )
				if( LT(newarg, minarg) || ( EQ(newarg, minarg) && newdst > maxdst) )
				{
					minarg = newarg;
					maxdst = newdst;
					candidx = i;
				}
			
		}

		if(candidx == 0)
		{
			break;
		}
		else
		{
			swap(vc[j+1], vc[candidx]);
			nowarg = minarg;
		}
	}
	
	return vc.begin()+j+1;
}

vector<P> solve(vector<P> vc)
{
	vector<P>::iterator it = wrapping_convex_hull(vc);
	
	return vector<P>(vc.begin(), it);
}


int main()
{
    int n;
     
    while(cin >> n, n)
    {
        vector<P> vc;
        vc.clear();
         
        for(int i = 0; i < n; i++)
        {
            char c;
            double a, b;
            cin >> a;
            cin >> c;
            cin >> b;
            vc.push_back(P(a, b));
        }
         
        vector<P> vc2 = solve(vc);
        cout << int(n - vc2.size()) << endl;
    }
     
    return 0;
}