#include<bits/stdc++.h>
#define int long long
#define for0(i, n) for(int i = 0; i < (n); i++)
#define for1(i, n) for(int i = 1; i <= (n);i++)
#define mp make_pair
#define all(x) x.begin(),x.end()
using namespace std;
double x, y;
vector<pair<double, double>>v1;
vector<pair<double, pair<double, double>>>v2;
stack<pair<double, double>>st;
void input() {
	string s; cin >> s;
	double k = 1, r[3];
	r[0] = 0; r[1] = 0;
	s += ',';int c = 0;
	bool b = 0;
	int sign = 1;
	for (char ch : s) {
		if (ch == ',') {
			r[c++] *= sign;
			b = 0; k = 1; sign = 1;
		}
		else if (ch == '.')b = 1;
		else if (ch == '-')sign = -1;
		else if (b) {
			k /= 10;
			r[c] += k * (ch - '0');
		}
		else {
			r[c] *= 10; r[c] += ch - '0';
		}
	}
	x = r[0]; y = r[1]; return;
}
signed main() {
	int n;
	while (cin >> n, n) {
		for0(i, n) { input(); v1.push_back(mp(x, y)); }
		sort(all(v1));
		for1(i, n - 1) {
			v1[i].first -= v1[0].first;
			v1[i].second -= v1[0].second;
		}
		v1[0] = mp(0, 0);
		for1(i, n - 1) {
			x = v1[i].first; y = v1[i].second;
			v2.push_back(mp(asin(y / sqrt(x * x + y * y)), v1[i]));
		}
		sort(all(v2));
		st.push(mp(0, 0));
		for0(i, n - 1) {
			if (st.size() <= 1)st.push(v2[i].second);
			else {
				x = v2[i].second.first; y = v2[i].second.second;
				double x2 = st.top().first, y2 = st.top().second; st.pop();
				double x1 = st.top().first, y1 = st.top().second; st.pop();
				while ((x - x1) * (y1 - y2) <= (y - y1) * (x1 - x2) && st.size()) {
					x2 = x1; y2 = y1;
					x1 = st.top().first, y1 = st.top().second; st.pop();
				}
				st.push(mp(x1, y1));
				st.push(mp(x2, y2));
				st.push(mp(x, y));
			}
		}
		cout << n - st.size() << endl;
		v1.clear(); v2.clear(); while (st.size())st.pop();
	}
}
