#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
typedef pair<double, double> P;

void solve()
{
	int n;
	while(cin >> n, n)
	{
		vector<P> pin(n);
		char c;
		for(int i = 0; i < n; ++i)
		{
			cin >> pin[i].first >> c >> pin[i].second;
		}
		sort(pin.begin(), pin.end());
		if(pin[0].first == pin[1].first && pin[0].second > pin[1].second)
		{
			P p = pin[0];
			pin[0] = pin[1];
			pin[1] = p;
		}
		bool isUsed[101] = {false};
		isUsed[0] = true;
		P current = pin[0];
		bool update = true;
		while(update)
		{
			update = false;
			double max_slope = -99999999;
			int max_pin = 0;
			for(int i = 1; i < n; ++i)
			{
				if(current.first < pin[i].first)
				{
					if(max_slope < (pin[i].second - current.second) / (pin[i].first - current.first))
					{
						max_slope = (pin[i].second - current.second) / (pin[i].first - current.first);
						max_pin = i;
						update = true;
					}
				}
			}
			if(update)
			{
				isUsed[max_pin] = true;
				current = pin[max_pin];
			}
		}
		current = pin[0];
		update = true;
		while(update)
		{
			update = false;
			double min_slope = 99999999;
			int min_pin = 0;
			for(int i = 1; i < n; ++i)
			{
				if(current.first < pin[i].first)
				{
					if(min_slope > (pin[i].second - current.second) / (pin[i].first - current.first))
					{
						min_slope = (pin[i].second - current.second) / (pin[i].first - current.first);
						min_pin = i;
						update = true;
					}
				}
			}
			if(update)
			{
				isUsed[min_pin] = true;
				current = pin[min_pin];
			}
		}
		int ans = 0;
		for(int i = 0; i < n; ++i)
		{
			if(isUsed[i] == false)
			{
				++ans;
			}
		}
		cout << ans << endl;
	}
}

int main()
{
	solve();
	return(0);
}