#include<algorithm>
#include<iostream>
#include<vector>
#include<cstdio>
#include<cstdlib>

const double EPS = 1e-10;

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

	return a + b;
}

struct P
{
	double x, y;

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

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

	P operator+ ( const P& p ) const
	{
		return P( add( x, p.x ), add( y, p.y ) );
	}

	P operator- ( const P& p ) const
	{
		return P( add( x, -p.x ), add( y, -p.y ) );
	}

	P operator* ( double d ) const
	{
		return P( x * d, y * d );
	}

	double dot( const P& p ) const
	{
		return add( x * p.x, y * p.y );
	}

	double cross( const P& p ) const
	{
		return add( x * p.y, -y * p.x );
	}
};

bool compare( const P& p, const P& q )
{
	if( p.x != q.x )
		return p.x < q.x;

	return p.y < q.y;
}

int n;
P ps[100];

int main()
{
	while( true )
	{
		scanf( "%d", &n );
		if( !n )
			break;

		for( int i = 0; i != n; ++i )
		{
			double x, y;
			scanf( "%lf,%lf", &x, &y );
			ps[i] = P( x, y );
		}

		std::sort( ps, ps + n, compare );

		int k = 0;
		std::vector<P> qs( n * 2 );

		for( int i = 0; i != n; ++i )
		{
			while( k > 1 && ( qs[k-1] - qs[k-2] ).cross( ps[i] - qs[k-1] ) <= 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] ).cross( ps[i] - qs[k-1] ) <= 0 )
				--k;

			qs[k++] = ps[i];
		}

		std::cout << n - k + 1 << std::endl;
	}

	return 0;
}