#include <bits/stdc++.h>
using namespace std;
#define TASK "PLAN"
using ll = long long;
const int M = 1e9;
inline ll addmod(ll a, ll b) {
a += b;
if (a >= M) a -= M;
return a;
}
inline ll submod(ll a, ll b) {
a -= b;
if (a < 0) a += M;
return a;
}
inline ll mulmod(ll a, ll b) {
return (a * b) % M;
}
int n, p, q, S;
vector<int> a;
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
// freopen(TASK".INP", "r", stdin);
// freopen(TASK".OUT", "w", stdout);
cin >> n >> p >> q;
S = p + q;
a.resize(n);
for (int i = 0; i < n; i++) {
int x, y;
cin >> x >> y;
a[i] = x + y;
}
int L = 0;
for (int x : a) L += x;
vector<ll> C(L + 1, 0), D(L + 1, 0), base(L + 1, 0), coef(L, 0);
D[0] = base[0] = 1;
for (int i = 0; i < n; i++) {
vector<ll> E(L + 1, 0);
for (int s = 0; s <= L; s++) {
E[s] = addmod(E[s], D[s]);
if (s + a[i] <= L)
E[s + a[i]] = submod(E[s + a[i]], D[s]);
}
D.swap(E);
}
C = D;
for (int k = 1; k <= L; k++) {
coef[k - 1] = (M - (C[k] % M)) % M;
}
for (int i = 0; i < n; i++)
for (int s = a[i]; s <= L; s++)
base[s] = addmod(base[s], base[s - a[i]]);
if (S < L) {
cout << base[S] % M << "\n";
return 0;
}
auto combine = [&](const vector<ll>& A, const vector<ll>& B) {
vector<ll> res(2 * L, 0);
for (int i = 0; i < L; i++) if (A[i]) {
for (int j = 0; j < L; j++) if (B[j]) {
res[i + j] = addmod(res[i + j], mulmod(A[i], B[j]));
}
}
for (int i = (int)res.size() - 1; i >= L; i--) if (res[i]) {
for (int k = 1; k <= L; k++) {
res[i - k] = addmod(res[i - k], mulmod(res[i], coef[k - 1]));
}
}
res.resize(L);
return res;
};
function<vector<ll>(ll)> kitamasa = [&](ll n) -> vector<ll> {
if (n < L) {
vector<ll> pol(L, 0);
pol[(int)n] = 1;
return pol;
}
vector<ll> ans(L, 0); ans[0] = 1;
vector<ll> poly(L, 0); poly[1 % L] = 1;
ll m = n;
while (m) {
if (m & 1LL) ans = combine(ans, poly);
poly = combine(poly, poly);
m >>= 1LL;
}
return ans;
};
vector<ll> poly = kitamasa(S);
ll res = 0;
for (int i = 0; i < L; i++)
if (poly[i]) res = addmod(res, mulmod(poly[i], base[i]));
cout << res % M << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFRBU0sgIlBMQU4iCgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGludCBNID0gMWU5OwoKaW5saW5lIGxsIGFkZG1vZChsbCBhLCBsbCBiKSB7CiAgICBhICs9IGI7CiAgICBpZiAoYSA+PSBNKSBhIC09IE07CiAgICByZXR1cm4gYTsKfQoKaW5saW5lIGxsIHN1Ym1vZChsbCBhLCBsbCBiKSB7CiAgICBhIC09IGI7CiAgICBpZiAoYSA8IDApIGEgKz0gTTsKICAgIHJldHVybiBhOwp9CgppbmxpbmUgbGwgbXVsbW9kKGxsIGEsIGxsIGIpIHsKICAgIHJldHVybiAoYSAqIGIpICUgTTsKfQoKaW50IG4sIHAsIHEsIFM7CnZlY3RvcjxpbnQ+IGE7CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CgogICAgLy8gZnJlb3BlbihUQVNLIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oVEFTSyIuT1VUIiwgInciLCBzdGRvdXQpOwoKICAgIGNpbiA+PiBuID4+IHAgPj4gcTsKICAgIFMgPSBwICsgcTsKCiAgICBhLnJlc2l6ZShuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBhW2ldID0geCArIHk7CiAgICB9CgogICAgaW50IEwgPSAwOwogICAgZm9yIChpbnQgeCA6IGEpIEwgKz0geDsKCiAgICB2ZWN0b3I8bGw+IEMoTCArIDEsIDApLCBEKEwgKyAxLCAwKSwgYmFzZShMICsgMSwgMCksIGNvZWYoTCwgMCk7CiAgICBEWzBdID0gYmFzZVswXSA9IDE7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICB2ZWN0b3I8bGw+IEUoTCArIDEsIDApOwogICAgICAgIGZvciAoaW50IHMgPSAwOyBzIDw9IEw7IHMrKykgewogICAgICAgICAgICBFW3NdID0gYWRkbW9kKEVbc10sIERbc10pOwogICAgICAgICAgICBpZiAocyArIGFbaV0gPD0gTCkKICAgICAgICAgICAgICAgIEVbcyArIGFbaV1dID0gc3VibW9kKEVbcyArIGFbaV1dLCBEW3NdKTsKICAgICAgICB9CiAgICAgICAgRC5zd2FwKEUpOwogICAgfQoKICAgIEMgPSBEOwogICAgZm9yIChpbnQgayA9IDE7IGsgPD0gTDsgaysrKSB7CiAgICAgICAgY29lZltrIC0gMV0gPSAoTSAtIChDW2tdICUgTSkpICUgTTsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBmb3IgKGludCBzID0gYVtpXTsgcyA8PSBMOyBzKyspCiAgICAgICAgICAgIGJhc2Vbc10gPSBhZGRtb2QoYmFzZVtzXSwgYmFzZVtzIC0gYVtpXV0pOwoKICAgIGlmIChTIDwgTCkgewogICAgICAgIGNvdXQgPDwgYmFzZVtTXSAlIE0gPDwgIlxuIjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBhdXRvIGNvbWJpbmUgPSBbJl0oY29uc3QgdmVjdG9yPGxsPiYgQSwgY29uc3QgdmVjdG9yPGxsPiYgQikgewogICAgICAgIHZlY3RvcjxsbD4gcmVzKDIgKiBMLCAwKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEw7IGkrKykgaWYgKEFbaV0pIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBMOyBqKyspIGlmIChCW2pdKSB7CiAgICAgICAgICAgICAgICByZXNbaSArIGpdID0gYWRkbW9kKHJlc1tpICsgal0sIG11bG1vZChBW2ldLCBCW2pdKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaSA9IChpbnQpcmVzLnNpemUoKSAtIDE7IGkgPj0gTDsgaS0tKSBpZiAocmVzW2ldKSB7CiAgICAgICAgICAgIGZvciAoaW50IGsgPSAxOyBrIDw9IEw7IGsrKykgewogICAgICAgICAgICAgICAgcmVzW2kgLSBrXSA9IGFkZG1vZChyZXNbaSAtIGtdLCBtdWxtb2QocmVzW2ldLCBjb2VmW2sgLSAxXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJlcy5yZXNpemUoTCk7CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH07CgogICAgZnVuY3Rpb248dmVjdG9yPGxsPihsbCk+IGtpdGFtYXNhID0gWyZdKGxsIG4pIC0+IHZlY3RvcjxsbD4gewogICAgICAgIGlmIChuIDwgTCkgewogICAgICAgICAgICB2ZWN0b3I8bGw+IHBvbChMLCAwKTsKICAgICAgICAgICAgcG9sWyhpbnQpbl0gPSAxOwogICAgICAgICAgICByZXR1cm4gcG9sOwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8bGw+IGFucyhMLCAwKTsgYW5zWzBdID0gMTsKICAgICAgICB2ZWN0b3I8bGw+IHBvbHkoTCwgMCk7IHBvbHlbMSAlIExdID0gMTsKCiAgICAgICAgbGwgbSA9IG47CiAgICAgICAgd2hpbGUgKG0pIHsKICAgICAgICAgICAgaWYgKG0gJiAxTEwpIGFucyA9IGNvbWJpbmUoYW5zLCBwb2x5KTsKICAgICAgICAgICAgcG9seSA9IGNvbWJpbmUocG9seSwgcG9seSk7CiAgICAgICAgICAgIG0gPj49IDFMTDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFuczsKICAgIH07CgogICAgdmVjdG9yPGxsPiBwb2x5ID0ga2l0YW1hc2EoUyk7CiAgICBsbCByZXMgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBMOyBpKyspCiAgICAgICAgaWYgKHBvbHlbaV0pIHJlcyA9IGFkZG1vZChyZXMsIG11bG1vZChwb2x5W2ldLCBiYXNlW2ldKSk7CgogICAgY291dCA8PCByZXMgJSBNIDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQo=