/*
TASK:area
LANG:C
*/

//#define DEBUG

#include<stdio.h>
#include<math.h>

#define INF 0.00000001

int intersect(double ,double ,double ,double ,double ,double ,double ,double );
double absolut(double );
int det(double ,double ,double ,double ,double ,double );
double area(double ,double ,double ,double ,double ,double );

double fx,fy,sx,sy;

double a[64][2];
int k;
double nod1[64][2],nod2[64][2];
int k1,k2;

int n;
int h,i,j;

int l1,l2;

int llx,lly,urx,ury;
int tx,ty;

int direction;

double surf=0;

int main () {

    int ax,ay,bx,by;
    
    #ifdef DEBUG
    freopen("test.txt","rt",stdin);
    #endif
    
    scanf("%d %d %d %d",&llx,&lly,&urx,&ury);
    scanf("%d %d",&tx,&ty);
    a[0][0]=(double)llx;
    a[0][1]=(double)lly;
    a[1][0]=(double)urx;
    a[1][1]=(double)lly;
    a[2][0]=(double)urx;
    a[2][1]=(double)ury;
    a[3][0]=(double)llx;
    a[3][1]=(double)ury;
    k=4;
    scanf("%d",&n);
    for (i=0;i<n;i++) {
        scanf("%d %d %d %d",&ax,&ay,&bx,&by);
        l1=l2=-1;
        for (j=0;j<k;j++)
            if (intersect(ax,ay,bx,by,a[j][0],a[j][1],a[(j+1)%k][0],a[(j+1)%k][1])) {
               l1=j;
               break;
               }
        for (j++;j<k;j++)
            if (intersect(ax,ay,bx,by,a[j][0],a[j][1],a[(j+1)%k][0],a[(j+1)%k][1])&&(absolut(fx-sx)>INF||absolut(fy-sy)>INF)) {
               l2=j;
               break;
               }
        nod1[0][0]=fx;
        nod1[0][1]=fy;
        k1=1;k2=0;
        l1++;
        if (absolut(a[l1][0]-fx)<INF&&absolut(a[l1][1]-fy)<INF)
           l1++;
        for (h=l1;h<=l2;h++) {
            nod1[k1][0]=a[h][0];
            nod1[k1][1]=a[h][1];
            k1++;
            }
        if (absolut(a[l2][0]-sx)<INF||absolut(a[l2][1]-sy)<INF) {
           nod1[k1][0]=sx;
           nod1[k1][1]=sy;
           k1++;
           nod2[0][0]=sx;
           nod2[0][1]=sy;
           k2++;
           }
        while (h!=l1) {
              nod2[k2][0]=a[h][0];
              nod2[k2][1]=a[h][1];
              k2++;
              h=(h+1)%k;
              }
        if (absolut(a[l1][0]-fx)<INF||absolut(a[l1][1]-fy)<INF) {
           nod2[k2][0]=fx;
           nod2[k2][1]=fy;
           k2++;
           }
        direction=det(nod1[0][0],nod1[0][1],nod1[1][0],nod1[1][1],(double)tx,(double)ty);
        for (j=1;j<k1;j++)
            if ((h=det(nod1[j][0],nod1[j][1],nod1[(j+1)%k1][0],nod1[(j+1)%k1][1],tx,ty))!=direction)
               break;
        if (j==k1) {
           k=k1;
           for (j=0;j<k;j++) {
               a[k][0]=nod1[j][0];
               a[k][1]=nod1[j][1];
               }
           }
        else {
             k=k2;
             for (j=0;j<k;j++) {
                 a[j][0]=nod2[j][0];
                 a[j][1]=nod2[j][1];
                 }
             }
        }
    for (i=1;i<k-1;i++)
        surf+=area(a[0][0],a[0][1],a[i][0],a[i][1],a[i+1][0],a[i+1][1]);
    printf("%d\n",(int)surf);
    return 0;
    }

int intersect(double se1x,double se1y,double se2x,double se2y,double ts1x,double ts1y,double ts2x,double ts2y) {
    double A2,B2,C2;
    double A1,B1,C1;
    A1=se2y-se1y;
    B1=se1x-se2x;
    C1=-A1*se1x-B1*se1y;
    A2=ts2y-ts1y;
    B2=ts1x-ts2x;
    C2=-A2*ts1x-B2*ts1y;
    if (l1==-1) {
       fx=(double)(C2*B1-C1*B2)/(A1*B2-A2*B1);
       fy=(double)(C2*A1-C1*A2)/(B1*A2-B2*A1);
       if ((ts1x<=fx&&fx<=ts2x||ts2x<=fx&&fx<=ts1x)&&(ts1y<=fy&&fy<=ts2y||ts2y<=fy&&fy<=ts1y))
          return 1;
       else return 0;
       }
    else {
         sx=(C2*B1-C1*B2)/(A1*B2-A2*B1);
         sy=(C2*A1-C1*A2)/(B1*A2-B2*A1);
         if ((ts1x<=sx&&sx<=ts2x||ts2x<=sx&&sx<=ts1x)&&(ts1y<=sy&&sy<=ts2y||ts2y<=sy&&sy<=ts1y))
            return 1;
         else return 0;
         }
    }
    
double absolut(double o) {
       if (o<0) return -o;
       else return o;
       }
       
int det(double ax,double ay,double bx,double by,double cx,double cy) {
    if (ax*by+ay*cx+bx*cy-cx*by-cy*ax-bx*ay>0)
       return 1;
    else
        return -1;
    }

double area(double ax,double ay,double bx,double by,double cx,double cy) {
       double la,lb,lc;
       la=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
       lb=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));
       lc=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
       return sqrt((la+lb+lc)*(-la+lb+lc)*(la-lb+lc)*(la+lb-lc)/16);
       }

