#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, a, b;
  long long g, x, y, z;
  cin >> n >> m >> a >> b;
  cin >> g >> x >> y >> z;
  vector<vector<int>> ar(n, vector<int>(m));
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      ar[i][j] = g;
      g = (g * x + y) % z;
    }
  }
  for (int i = 0; i < n; i++) {
    int j;
    deque<pair<int, int>> q;
    for (j = 0; j < m; j++) {
      while (q.size() > 0 && q.back().first >= ar[i][j]) q.pop_back();
      q.emplace_back(ar[i][j], j);
      if (q.front().second <= j - b) q.pop_front();
      if (j >= b - 1) {
        ar[i][j - b + 1] = q.front().first;
      }
    }
  }
  long long res = 0;
  for (int j = 0; j < m - b + 1; j++) {
    int i;
    deque<pair<int, int>> q;
    for (i = 0; i < n; i++) {
      while (q.size() > 0 && q.back().first >= ar[i][j]) q.pop_back();
      q.emplace_back(ar[i][j], i);
      if (q.front().second <= i - a) q.pop_front();
      if (i >= a - 1) {
        res += q.front().first;
      }
    }
  }
  cout << res << endl;
  return 0;
}
