/*
TASK:hop
LANG:C++
*/
#include <iostream>

using namespace std;

bool ux[1501],uy[1501];
int j,i,n,m,s1,s2,x1,x2,y1,y2,x[1501],y[1501],solx1,soly1,solx2,soly2,solx=2000000,soly=2000000,mx,my;


int main(){
    cin>>n>>m>>x1>>y1>>s1>>x2>>y2>>s2;
    for(i=x1%s1;i<=n;i+=s1) ux[i]=1;
    for(i=x2%s2;i<=n;i+=s2){
        if(ux[i]) {x[0]++;x[x[0]]=i;}
    }
    for(i=y1%s1;i<=n;i+=s1) uy[i]=1;
    for(i=y2%s2;i<=n;i+=s2){
        if(uy[i]) {y[0]++;y[y[0]]=i;}
    }
    if(x[0]==0||y[0]==0){
        cout<<"0\n";
        return 0;
    }
    for(i=1;i<=x[0];i++){
        solx1=x1>x[i]?(x1-x[i]):(x[i]-x1);
        solx1/=s1;
        solx2=x2>x[i]?(x2-x[i]):(x[i]-x2);
        solx2/=s2;
        mx=x1>x2?x1:x2;
        if(solx>mx) solx=mx;
    }
    for(j=1;j<=y[0];j++){
        soly1=y1>y[j]?(y1-y[j]):(y[j]-y1);
        soly1/=s1;
        soly2=y2>y[j]?(y2-y[j]):(y[j]-y2);
        soly2/=s2;
        my=y1>y2?y1:y2;
        if(soly>my) soly=my;
    }
    cout<<solx+soly<<"\n";
    return 0;
}
