#include<stdio.h>
#include<math.h>
struct Point
{
int x,y;
}point[5];
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int Onside()
{
int i,ret=0;
for(i=0;i<3;i++)
ret+=gcd(abs(point[i].x-point[(i+1)%3].x),abs(point[i].y-point[(i+1)%3].y));
return ret;
}
double aarea()
{
int i,sum=0;
for(i=0;i<3;i++)
{
sum+=point[(i+1)%3].y*(point[i].x-point[(i+2)%3].x);
}
return abs(1.0*sum/2);
}
int main()
{
int area,onside;
while(scanf("%d%d%d%d%d%d",&point[0].x,&point[0].y,&point[1].x,&point[1].y,&point[2].x,&point[2].y))
{
if(point[0].x==0 && point[0].y==0 && point[1].x==0 && point[1].y==0 && point[2].x==0 && point[2].y==0)
break;
area=(int)aarea();
onside=Onside();
printf("%d\n",(area+1)-onside/2);
}
return 0;
}