#include <bits/stdc++.h>
using namespace std;
const long long INF = 2147483647;
const long long INFL = 9223372036854775807LL;
const double EPSILON = 0.00000001;
const long long MOD = 1000000007;
long long extended_euclid(long long a, long long b, long long *x,
                          long long *y) {
  if (a == 0) {
    *x = 0;
    *y = 1;
    return b;
  }
  long long x1, y1, g;
  g = extended_euclid(b % a, a, &x1, &y1);
  *x = y1 - (b / a) * x1;
  *y = x1;
  return g;
}
vector<long long> linear_diophantine_equation(long long a, long long b,
                                              long long c) {
  long long g, x, y;
  g = extended_euclid(a, b, &x, &y);
  if (c % g != 0) return vector<long long>();
  x *= c / g;
  y *= c / g;
  assert(a * x + b * y == c);
  return vector<long long>({x, y, b / g, -a / g});
}
long long true_floor(long long a, long long b) {
  long long ret = a / b;
  if (b > 0 and ret * b > a)
    ret--;
  else if (b < 0 and ret * b < a)
    ret--;
  return ret;
}
long long true_ceil(long long a, long long b) {
  long long ret = a / b;
  if (b > 0 and ret * b < a)
    ret++;
  else if (b < 0 and ret * b > a)
    ret++;
  return ret;
}
long long solve(long long dx, long long dy, long long x0, long long y0,
                long long cx, long long cy) {
  long long a = 2 * dx;
  long long b = -2 * dy;
  long long c = x0 - y0 - cx * dx + cy * dy;
  vector<long long> sols = linear_diophantine_equation(a, b, c);
  if (sols.empty()) return INFL;
  ;
  long long i;
  if (sols[2] > 0)
    i = true_ceil(-sols[0], sols[2]);
  else
    i = true_floor(-sols[0], sols[2]);
  long long k = sols[0] + i * sols[2];
  long long l = sols[1] + i * sols[3];
  assert(k >= 0);
  assert(l >= 0);
  long long p = (2 * k + cx) * dx - x0;
  if (p < 0) {
    if (sols[2] > 0)
      i++;
    else
      i--;
    k = sols[0] + i * sols[2];
    l = sols[1] + i * sols[3];
    assert(k >= 0);
    assert(l >= 0);
    p = (2 * k + cx) * dx - x0;
  }
  assert(p > 0);
  assert((2 * l + cy) * dy - y0 == p);
  return p;
}
int32_t main() {
  long long dx, dy, x0, y0, vx, vy;
  cin >> dx >> dy >> x0 >> y0 >> vx >> vy;
  if (vx == 0 or vy == 0) {
    if (x0 == 0) {
      if (vy == 1)
        cout << 0 << " " << dy << endl;
      else if (vy == -1)
        cout << 0 << " " << 0 << endl;
      else
        cout << -1 << endl;
    } else if (x0 == dx) {
      if (vy == 1)
        cout << dx << " " << dy << endl;
      else if (vy == -1)
        cout << dx << " " << 0 << endl;
      else
        cout << -1 << endl;
    } else if (y0 == 0) {
      if (vx == 1)
        cout << dx << " " << 0 << endl;
      else if (vx == -1)
        cout << 0 << " " << 0 << endl;
      else
        cout << -1 << endl;
    } else if (y0 == dy) {
      if (vx == 1)
        cout << dx << " " << dy << endl;
      else if (vx == -1)
        cout << 0 << " " << dy << endl;
      else
        cout << -1 << endl;
    } else {
      cout << -1 << endl;
    }
  } else {
    bool mirror_x = false, mirror_y = false;
    if (vx == -1) {
      mirror_x = true;
      x0 = dx - x0;
    }
    if (vy == -1) {
      mirror_y = true;
      y0 = dy - y0;
    }
    long long pa = solve(dx, dy, x0, y0, 0, 0);
    long long push_back = solve(dx, dy, x0, y0, 0, 1);
    long long pc = solve(dx, dy, x0, y0, 1, 0);
    long long pd = solve(dx, dy, x0, y0, 1, 1);
    long long best = ((pa) < (((push_back) < (((pc) < (pd) ? (pc) : (pd)))
                                   ? (push_back)
                                   : (((pc) < (pd) ? (pc) : (pd)))))
                          ? (pa)
                          : (((push_back) < (((pc) < (pd) ? (pc) : (pd)))
                                  ? (push_back)
                                  : (((pc) < (pd) ? (pc) : (pd))))));
    long long corner;
    if (pa == INFL and push_back == INFL and pc == INFL and pd == INFL) {
      cout << -1 << endl;
      return 0;
    } else if (pa == best)
      corner = 0;
    else if (push_back == best)
      corner = 1;
    else if (pc == best)
      corner = 2;
    else if (pd == best)
      corner = 3;
    if (mirror_x) corner ^= 2;
    if (mirror_y) corner ^= 1;
    if (corner == 0) {
      cout << 0 << " " << 0 << endl;
    } else if (corner == 1) {
      cout << 0 << " " << dy << endl;
    } else if (corner == 2) {
      cout << dx << " " << 0 << endl;
    } else if (corner == 3) {
      cout << dx << " " << dy << endl;
    }
  }
  return 0;
}
