#include <bits/stdc++.h>   const int N = 1e5 + 5;   struct ooo {     int v, id;   } p[N << 1];   bool operator<(const ooo& a, const ooo& b) { return a.v < b.v; }   int n, ans, id, h, m, k, x;   int main() {     scanf( %d%d%d%d , &n, &h, &m, &k);     m /= 2;     for (int i = 1; i <= n; i++)       scanf( %d%d , &x, &p[i].v), p[i].v %= m, p[i].id = i;     std::sort(p + 1, p + 1 + n);     for (int i = 1; i <= n; i++) p[i + n] = p[i], p[i + n].v += m;     ans = 1e9;     x = -1;     for (int i = 1, j = 1; i <= n * 2; i++) {       while (p[i].v - p[j].v >= k) j++;       if (i > n && i - j < ans) ans = i - j, x = p[i].v;     }     printf( %d %d n , ans, x % m);     for (int i = 1; i <= n * 2; i++)       if (x - k < p[i].v && p[i].v < x) printf( %d  , p[i].id);   }   