#include <bits/stdc++.h>
using namespace std;
const int maxn = 100 + 10;
int vis[maxn][maxn];
vector<pair<int, int> > ans;
int n, m, x, y;
int main() {
  scanf("%d%d%d%d", &n, &m, &x, &y);
  ans.emplace_back(make_pair(x, y));
  int nx = x, ny = y + 1;
  while (ny <= m) {
    ans.emplace_back(make_pair(nx, ny));
    ++ny;
  }
  ny = y - 1;
  while (ny >= 1) {
    ans.emplace_back(make_pair(nx, ny));
    --ny;
  }
  ny = 1;
  nx = x - 1;
  while (nx >= 1) {
    ans.emplace_back(make_pair(nx, ny));
    --nx;
  }
  nx = x + 1;
  while (nx <= n) {
    ans.emplace_back(make_pair(nx, ny));
    ++nx;
  }
  nx = n;
  ny = 2;
  while ((int)ans.size() < n * m) {
    while (nx >= 1) {
      if (nx != x) ans.emplace_back(make_pair(nx, ny));
      --nx;
    }
    nx = 1;
    ++ny;
    if ((int)ans.size() == n * m) break;
    while (nx <= n) {
      if (nx != x) ans.emplace_back(make_pair(nx, ny));
      ++nx;
    }
    ++ny;
    nx = n;
  }
  for (auto& tmp : ans) printf("%d %d\n", tmp.first, tmp.second);
  return 0;
}
