#include <bits/stdc++.h>
using namespace std;
int t, m, n, r, b, g, w;
int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
vector<pair<int, int> > v;
bool vis[105][105];
void dfs(int x, int y) {
  vis[x][y] = 1;
  v.push_back({x, y});
  for (int i = 0; i < 4; i++) {
    int cnt = 1;
    while (1) {
      int nx = x + dx[i] * cnt;
      int ny = y + dy[i] * cnt;
      if (nx >= 0 && ny >= 0 && nx < n && ny < m && !vis[nx][ny])
        dfs(nx, ny);
      else if (!(nx >= 0 && ny >= 0 && nx < n && ny < m))
        break;
      cnt++;
    }
  }
}
int main() {
  int x, y;
  memset(vis, 0, sizeof(vis));
  v.clear();
  cin >> n >> m;
  cin >> x >> y;
  dfs(x - 1, y - 1);
  for (int i = 0; i < v.size(); i++)
    cout << v[i].first + 1 << " " << v[i].second + 1 << '\n';
}
