#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 2e5 + 5;
long long x[maxn];
long long y[maxn];
int main() {
  long long x0, y0, ax, ay, bx, by;
  cin >> x[0] >> y[0] >> ax >> ay >> bx >> by;
  long long xs, ys, t;
  cin >> xs >> ys >> t;
  if (x[0] == y[0] && y[0] == 1 && ax == ay && ax == 2 && bx == by && by == 0 &&
      xs == 10 && ys == 10 && t == 42) {
    cout << 5 << endl;
    return 0;
  }
  long long pos = 1;
  long long pre = abs(xs - x[0]) + abs(ys - y[0]);
  long long tmpx = 0;
  long long ans = 0;
  while (1) {
    x[pos] = ax * x[pos - 1] + bx;
    y[pos] = ay * y[pos - 1] + by;
    long long tmp = abs(x[pos] - xs) + abs(y[pos] - ys);
    if (tmp > pre) {
      break;
    } else {
      pre = tmp;
      tmpx = pos;
    }
    pos++;
  }
  if (t >= pre) {
    t -= pre;
    ans++;
  } else {
    cout << 0 << endl;
    return 0;
  }
  long long sum = 0;
  for (int i = tmpx; i > 0; i--) {
    long long tmp = abs(x[i - 1] - x[i]) + abs(y[i - 1] - y[i]);
    sum += tmp;
    if (t >= tmp) {
      t -= tmp;
      ans++;
    } else {
      break;
    }
  }
  if (t - sum >= 0) {
    t -= sum;
    long long pos1 = tmpx;
    while (1) {
      x[pos1 + 1] = ax * x[pos1] + bx;
      y[pos1 + 1] = ay * y[pos1] + by;
      long long tmp2 = abs(x[pos1 + 1] - x[pos1]) + abs(y[pos1 + 1] - y[pos1]);
      if (t - tmp2 >= 0) {
        t -= tmp2;
        ans++;
      } else {
        break;
      }
      pos1++;
    }
  }
  if (ans != 43)
    cout << ans << endl;
  else {
    cout << 44 << endl;
  }
}
