#include <bits/stdc++.h>
#pragma comment(linker, "/stack:64000000")
using namespace std;
template <typename first>
inline first abs(const first& a) {
  return a < 0 ? -a : a;
}
template <typename first>
inline first sqr(const first& a) {
  return a * a;
}
const long double PI = 3.1415926535897932384626433832795;
const long double EPS = 1e-9;
const int INF = 1000 * 1000 * 1000;
long long up(long long d, long long k) {
  if (d >= 0) return (d / k + 1) * k;
  return (d / k) * k;
}
long long down(long long d, long long k) {
  if (d >= 0) return (d / k) * k;
  return (d / k - 1) * k;
}
int main() {
  long long a, b, x1, y1, x2, y2;
  cin >> a >> b >> x1 >> y1 >> x2 >> y2;
  a *= 2, b *= 2;
  long long d1 = x1 + y1, d2 = x2 + y2;
  long long dd1 = x1 - y1, dd2 = x2 - y2;
  if (d1 > d2) swap(d1, d2);
  if (dd1 > dd2) swap(dd1, dd2);
  long long dlf = up(d1, a), drg = down(d2, a);
  long long ddlf = up(dd1, b), ddrg = down(dd2, b);
  assert((drg - dlf) % a == 0 && (ddrg - ddlf) % b == 0);
  long long dcnt = (drg >= dlf ? (drg - dlf) / a + 1 : 0);
  long long ddcnt = (ddrg >= ddlf ? (ddrg - ddlf) / b + 1 : 0);
  cout << max(dcnt, ddcnt) << endl;
  return 0;
}
