#include <bits/stdc++.h>
using namespace std;
struct debugger {
  template <typename T>
  debugger& operator,(const T v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
const double pi = acos(-1.0);
const double eps = 1e-7;
template <class TT>
TT sqr(TT a) {
  return a * a;
}
template <class TT>
TT abs(TT a) {
  if (a < 0) return -a;
  return a;
}
template <class ZZ>
ZZ max(ZZ a, ZZ b, ZZ c) {
  return max(a, max(b, c));
}
template <class ZZ>
ZZ min(ZZ a, ZZ b, ZZ c) {
  return min(a, min(b, c));
}
struct P {
  double x, y, z;
  P(double xi = 0, double yi = 0, double zi = 0) : x(xi), y(yi), z(zi){};
  void scan() { cin >> x >> y >> z; }
};
P Add(P a, P b) { return P(a.x + b.x, a.y + b.y, a.z + b.z); }
P Mul(P a, double l) { return P(a.x * l, a.y * l, a.z * l); }
int A, B;
P v;
P p;
void go() {
  double tx, ty, tz, mt;
  int sx, sy, sz = 1;
  while (true) {
    sx = sy = sz = 1;
    tx = ty = tz = 1000;
    P np;
    np = Add(p, Mul(v, 200));
    if (np.x < 0) tx = abs((p.x - 0) / v.x);
    if (np.x > A) tx = abs((p.x - A) / v.x);
    if (np.z < 0) tz = abs((p.z - 0) / v.z);
    if (np.z > B) tz = abs((p.z - B) / v.z);
    if (np.y < 0) ty = abs((p.y - 0) / v.y);
    mt = min(tx, ty, tz);
    p = Add(p, Mul(v, mt));
    if ((fabs(mt - ty) < 1e-5)) return;
    if ((fabs(mt - tx) < 1e-5)) sx = -1;
    if ((fabs(mt - tz) < 1e-5)) sz = -1;
    v.x *= sx;
    v.z *= sz;
  }
}
int main() {
  int i, j, k, l, tks, ks = 1, n, m;
  while (cin >> A >> B >> m) {
    v.scan();
    p = P(A / 2.0, m, 0);
    go();
    printf("%.10lf %.10lf\n", p.x, p.z);
  }
  return 0;
}
