#include<bits/stdc++.h>
using namespace std;
const double eps=1e-8;
double sum,all,Area[3];
int sgn(double x){
if( fabs(x)<eps )
return 0;
return x>0?1:-1;
};
struct Point{
double x,y;
Point(){
x=y=0;
}
bool operator ==(Point b){
return (sgn(x-b.x)==0 && sgn(y-b.y)==0);
}
Point operator -(Point b){
Point c;
c.x=x-b.x,c.y=y-b.y;
return c;
}
} A[4];
double cross(Point a,Point b){
return a.x*b.y-a.y*b.x;
}
double area(Point a,Point b,Point c){
return cross(a-c,b-c)/2.0;
}
int main() {
for(int i=0;i<4;i++)
scanf("(%lf,%lf)\n",&A[i].x,&A[i].y);
if( A[3]==A[0] || A[3]==A[1] || A[3]==A[2] ){
cout<<4;
return 0;
}
Area[0]=area(A[0],A[1],A[3]),Area[1]=area(A[0],A[2],A[3]),Area[2]=area(A[1],A[2],A[3]);
if( !Area[0] || !Area[1] || !Area[2] ){
cout<<3;
return 0;
}
sum=area(A[0],A[1],A[2]);
all=fabs(Area[0])+fabs(Area[1])+fabs(Area[2]);
if( sgn(sum-all)==0 )
cout<<1;
else
cout<<2;
return 0;
}