#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct data
{
int p, q;
data (int x, int y)
{
p = x;
q = y;
}
} typedef data;
int main ()
{
vector <data> v;
int x, y, a, b;
cin>>x>>y>>a>>b;
for (int i=a; i<=x; i++)
{
for (int j=b; j<i && j<=y; j++)
{
v.push_back(data(i, j));
}
}
cout<<v.size()<<endl;
for (int i=0; i<v.size(); i++)
{
cout<<v[i].p<<" "<<v[i].q<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnN0cnVjdCBkYXRhCnsKCWludCBwLCBxOwoJZGF0YSAoaW50IHgsIGludCB5KQoJewoJCXAgPSB4OwoJCXEgPSB5OwoJfQp9IHR5cGVkZWYgZGF0YTsKIAppbnQgbWFpbiAoKQp7Cgl2ZWN0b3IgPGRhdGE+IHY7CglpbnQgeCwgeSwgYSwgYjsKCWNpbj4+eD4+eT4+YT4+YjsKCWZvciAoaW50IGk9YTsgaTw9eDsgaSsrKQoJewoJCWZvciAoaW50IGo9YjsgajxpICYmIGo8PXk7IGorKykKCQl7CgkJCXYucHVzaF9iYWNrKGRhdGEoaSwgaikpOwoJCX0KCX0KCWNvdXQ8PHYuc2l6ZSgpPDxlbmRsOwoJZm9yIChpbnQgaT0wOyBpPHYuc2l6ZSgpOyBpKyspCgl7CgkJY291dDw8dltpXS5wPDwiICI8PHZbaV0ucTw8ZW5kbDsKCX0KCXJldHVybiAwOwp9IA==