def area(x1,y1,x2,y2,x3,y3):
    return ((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1))/2.0
def totu(S,d):
    if len(S)<=3:
        if len(S)==3:
            if d=="r":
                if area(S[0][0],S[0][1],S[1][0],S[1][1],S[2][0],S[2][1])>0:
                    S[1],S[2]=S[2],S[1]
                    
            else:
                if area(S[0][0],S[0][1],S[1][0],S[1][1],S[2][0],S[2][1])>0:
                    S=[S[2],S[0],S[1]]
                else:
                    S=[S[2],S[1],S[0]]
        if len(S)==2:
            if d=="l":
                S[0],S[1]=S[1],S[0]
        return S

    else:
        S1=totu(S[:len(S)/2],"l")
        S2=totu(S[len(S)/2:],"r")
        ue_old_ri=0
        ue_old_li=0
        ue_new_ri=0
        ue_new_li=0

        while True:
            for i in [i for i in range(len(S2)) if i>=ue_old_ri]:
                if  area(S1[ue_old_li][0],S1[ue_old_li][1],S2[i][0],S2[i][1],S2[(i+1)%len(S2)][0],
                         S2[(i+1)%len(S2)][1])<=0:
                    ue_new_ri=i
                    break
            for j in [j for j in range(len(S1)) if j>=ue_old_li]:
                if area(S2[ue_new_ri][0],S2[ue_new_ri][1],S1[j][0],S1[j][1],S1[(j+1)%len(S1)][0],
                        S1[(j+1)%len(S1)][1])>=0:
                    ue_new_li=j
                    break
            if ue_old_ri==ue_new_ri and ue_old_li==ue_new_li:
                break
            ue_old_ri,ue_old_li=ue_new_ri,ue_new_li
        si_old_ri=0
        si_old_li=0
        si_new_ri=0
        si_new_li=0
        while True:
            for i in [-i for i in range(len(S2)) if (-1)*i<=si_old_ri]:
                if  area(S1[si_old_li%len(S1)][0],S1[si_old_li%len(S1)][1],S2[i%len(S2)][0],S2[i%len(S2)][1],S2[(i-1)%len(S2)][0],
                         S2[(i-1)%len(S2)][1])>=0:
                    si_new_ri=i
                    break
            for j in [-j for j in range(len(S1)) if (-1)*j<=si_old_li]:
                if area(S2[si_new_ri%len(S2)][0],S2[si_new_ri%len(S2)][1],S1[j%len(S1)][0],S1[j%len(S1)][1],S1[(j-1)%len(S1)][0],
                        S1[(j-1)%len(S1)][1])<=0:
                    si_new_li=j
                    break
            if si_old_ri==si_new_ri and si_old_li==si_new_li:
                break
            si_old_ri,si_old_li=si_new_ri,si_new_li
        if d=="r":
            Sx=[]
            i=0
            while True:
                Sx.append(S2[(i+ue_old_ri)%len(S2)])
                if (i+ue_old_ri)%len(S2)==si_old_ri%len(S2):
                    break
                i+=1

            Sy=[]
            j=0
            while True:
                Sy.append(S1[(si_old_li-j)%len(S1)])
                if (si_old_li-j)%len(S1)==ue_old_li%len(S1):
                    break
                j+=1

            S=Sx+Sy
            m=S.index(min(S))
            S_d=[]
            for i in range(len(S)):
                S_d.append(S[(m+i)%len(S)])
            return S_d
        else:
            Sx=[]
            i=0
            while True:
                Sx.append(S1[(i+ue_old_li)%len(S1)])
                if (i+ue_old_li)%len(S1)==si_old_li%len(S1):
                    break
                i+=1

            Sy=[]
            j=0
            while True:
                Sy.append(S2[(si_old_ri-j)%len(S2)])
                if (si_old_ri-j)%len(S2)==ue_old_ri%len(S2):
                    break
                j+=1

            S=Sx+Sy
            m=S.index(max(S))
            S_d=[]
            for i in range(len(S)):
                S_d.append(S[(m+i)%len(S)])
            return S_d

while True:
    L=[]
    n=input()
    prin=n
    if n==0:
        break
    while n!=0:
        L.append(map(float,raw_input().split(",")))
        n-=1
    L.sort()
    L=totu(L,"l")
    print prin-len(L)

Measured memory_bytes: 4604