#include <bits/stdc++.h>
using namespace std;
int n, m, a, b;
int g, x, y, z;
vector<vector<int>> h;
vector<int> bump(vector<int> vec, int len) {
  list<pair<int, int>> l;
  vector<int> res;
  for (int i = 0; i < vec.size(); i++) {
    while (!l.empty() && l.front().first > vec[i]) l.pop_front();
    l.push_front({vec[i], i});
    while (!l.empty() && l.back().second + len - 1 < i) l.pop_back();
    res.push_back(l.back().first);
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> m >> a >> b;
  cin >> g >> x >> y >> z;
  h.assign(n, vector<int>(m, 0));
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) {
      h[i][j] = g;
      g = (g * 1LL * x + y) % z;
    }
  vector<vector<int>> nins;
  nins.resize(n);
  for (int i = 0; i < n; i++) {
    nins[i] = bump(h[i], b);
  }
  long long ans = 0;
  for (int j = b - 1; j < m; j++) {
    vector<int> tmp;
    for (int i = 0; i < n; i++) {
      tmp.push_back(nins[i][j]);
    }
    tmp = bump(tmp, a);
    for (int i = a - 1; i < n; i++) {
      int v = tmp[i];
      ans += v;
    }
  }
  cout << ans << endl;
}
