/*
TASK:hop
LANG:C++
*/

#include <cstdio>
//#include <conio.h>
#include <algorithm>
using namespace std;

#define MN      150
#define INF     2000000000

int N,M;
int x1,y1,s1;
int x2,y2,s2;

int f[2][MN][MN];
char u[MN][MN];
int q[MN*MN][2];
int qs,qe;

int dx[]={1,-1,-1,1};
int dy[]={1,-1,1,-1};

int jmp[2][MN*MN][2];
int jmp_n[2];

void solve(int ix, int x,int y,int s)
{
    memset(u,0,sizeof(u));
    u[x][y]=1;
    f[ix][x][y]=0;
    
    qs=0; qe=1;
    q[0][0]=x;
    q[0][1]=y;
    
    int cx,cy, nx,ny, k,k1;
    int jmp_n_n = jmp_n[ix];
    
    
    while (qs<qe) {
        cx=q[qs][0];
        cy=q[qs][1];
        qs++;
        
        for (k1=0;k1<jmp_n_n; ++k1) {
            for (k=0; k<4; ++k) {
                nx=cx + dx[k]* jmp[ix][ k1 ][0];
                ny=cy + dy[k]* jmp[ix][ k1 ][1];
                
                if (0<=nx&&nx<=N && 0<=ny&&ny<=M && !u[nx][ny]) {
                    u[nx][ny]=1;
                    f[ix][nx][ny] = 1 + f[ix][cx][cy];
                    q[qe][0]=nx;
                    q[qe][1]=ny;
                    qe++;
                }
            }
        }
    }
}

int main()
{
    //freopen("a1.in","r",stdin);
    
    scanf("%d%d%d%d%d%d%d%d",&N,&M, &x1,&y1,&s1, &x2,&y2,&s2);
    
    int s;
    for (int ix=0; ix<2; ++ix) {
        if (ix==0) s=s1;
        if (ix==1) s=s2;
        jmp_n[ix]=0;
        
        for (int x=0;x<=N;++x) {
            for (int y=0;y<=M;++y) {
                if (s*s == x*x+y*y) {
                    jmp[ix][ jmp_n[ix] ][0]=x;
                    jmp[ix][ jmp_n[ix] ][1]=y;
                    jmp_n[ix]++;
                    
                    //if (ix==0) printf("%d %d\n", x,y);
                }
            }
        }
        
    }
    
    memset(f,-1,sizeof(f));
    solve(0,x1,y1,s1);
    solve(1,x2,y2,s2);
    
    int ans=INF;
    
    for (int x=0;x<=N;++x) {
        for (int y=0;y<=M;++y) {
            if (f[0][x][y]!=-1 && f[1][x][y]!=-1) {
                ans = min(ans, f[0][x][y]+f[1][x][y]);
            }
        }
    }
    
    if (ans==INF) printf("0\n");
    else printf("%d\n",ans);
    
    //getch();
    return 0;
}
