#include <iostream>
#include <algorithm>
#define int long long
 
 
using namespace std;
 
constexpr int N = 1111 + 5;
constexpr int P = 1e9 + 9999;
int n;
pair<int, int> ranges[N];
 
int inv[N] = {0};
int a[N];
 
int invert(int x) {
    int y = 1;
    for (int k = P - 2; k; k >>= 1) {
        if (k & 1)
            y = y * x % P;
        x = x * x % P;
    }
    return y;
}
 
void init() {
    inv[1] = 1;
    for (int p = 2; p < N; p++) {
        if (inv[p]) continue;
        inv[p] = invert(p);
        for (int k = p; k * p < N; k++) {
            inv[k * p] = inv[k] * inv[p] % P;
        }
    }
}
 
int get(int x)
{
    int y = 1;
    int res = 0;
    for (int k = 0; k <= n; k++) {
        y = y * (x - k + P) % P;
        res = (res + a[k] * y % P * inv[k + 1]) % P;
    }
    return res;
}
 
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
 
    // freopen("input.txt", "r", stdin);
    // freopen("maxvalue.inp", "r", stdin);
    // freopen("maxvalue.out", "w", stdout);
 
    init();
 
    cin >> n;
 
    int prod = 1;
 
    int maxl = 0;
    int maxr = 0;
    for (int i = 1; i <= n; i++) {
        int l, r;
        cin >> l >> r;
        r++;
        ranges[i] = {l, r};
 
        maxl = max(maxl, l);
        maxr = max(maxr, r);
        prod = prod * (r - l) % P;
    }
    int U = prod * maxr % P;
 
    ranges[0] = {0, maxl};
    sort(ranges + 1, ranges + n + 1,
      [](const pair<int, int> &lr1, const pair<int, int> &lr2) {
        return lr1.second < lr2.second;
    });
 
    int ans = 0;
 
    a[0] = 1;
    for (int i = 1; i <= n; i++)
        a[i] = 0;
 
    for (int i = n; i; i--) {
        int L = ranges[i].first;
        int R = ranges[i].second;
        int lo = max(maxl, ranges[i - 1].second);
 
        for (int k = n; k >= 0; k--) {
            a[k] = a[k] * (k - L + P);
            if (k > 0) a[k] += a[k - 1];
            a[k] %= P;
        }
 
        prod = prod * invert(R - L) % P;
 
        ans += (get(R + 1) - get(lo + 1) + P) * prod % P;
        if (lo == maxl) break; 
    }
 
    cout << ((U - ans + P) % P + P) % P;
 
    return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojZGVmaW5lIGludCBsb25nIGxvbmcKCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3RleHByIGludCBOID0gMTExMSArIDU7CmNvbnN0ZXhwciBpbnQgUCA9IDFlOSArIDk5OTk7CmludCBuOwpwYWlyPGludCwgaW50PiByYW5nZXNbTl07CgppbnQgaW52W05dID0gezB9OwppbnQgYVtOXTsKCmludCBpbnZlcnQoaW50IHgpIHsKICAgIGludCB5ID0gMTsKICAgIGZvciAoaW50IGsgPSBQIC0gMjsgazsgayA+Pj0gMSkgewogICAgICAgIGlmIChrICYgMSkKICAgICAgICAgICAgeSA9IHkgKiB4ICUgUDsKICAgICAgICB4ID0geCAqIHggJSBQOwogICAgfQogICAgcmV0dXJuIHk7Cn0KCnZvaWQgaW5pdCgpIHsKICAgIGludlsxXSA9IDE7CiAgICBmb3IgKGludCBwID0gMjsgcCA8IE47IHArKykgewogICAgICAgIGlmIChpbnZbcF0pIGNvbnRpbnVlOwogICAgICAgIGludltwXSA9IGludmVydChwKTsKICAgICAgICBmb3IgKGludCBrID0gcDsgayAqIHAgPCBOOyBrKyspIHsKICAgICAgICAgICAgaW52W2sgKiBwXSA9IGludltrXSAqIGludltwXSAlIFA7CiAgICAgICAgfQogICAgfQp9CgppbnQgZ2V0KGludCB4KQp7CiAgICBpbnQgeSA9IDE7CiAgICBpbnQgcmVzID0gMDsKICAgIGZvciAoaW50IGsgPSAwOyBrIDw9IG47IGsrKykgewogICAgICAgIHkgPSB5ICogKHggLSBrICsgUCkgJSBQOwogICAgICAgIHJlcyA9IChyZXMgKyBhW2tdICogeSAlIFAgKiBpbnZbayArIDFdKSAlIFA7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgpzaWduZWQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBjb3V0LnRpZShOVUxMKTsKCiAgICAvLyBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oIm1heHZhbHVlLmlucCIsICJyIiwgc3RkaW4pOwogICAgLy8gZnJlb3BlbigibWF4dmFsdWUub3V0IiwgInciLCBzdGRvdXQpOwoKICAgIGluaXQoKTsKCiAgICBjaW4gPj4gbjsKCiAgICBpbnQgcHJvZCA9IDE7CgogICAgaW50IG1heGwgPSAwOwogICAgaW50IG1heHIgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgaW50IGwsIHI7CiAgICAgICAgY2luID4+IGwgPj4gcjsKICAgICAgICByKys7CiAgICAgICAgcmFuZ2VzW2ldID0ge2wsIHJ9OwoKICAgICAgICBtYXhsID0gbWF4KG1heGwsIGwpOwogICAgICAgIG1heHIgPSBtYXgobWF4ciwgcik7CiAgICAgICAgcHJvZCA9IHByb2QgKiAociAtIGwpICUgUDsKICAgIH0KICAgIGludCBVID0gcHJvZCAqIG1heHIgJSBQOwoKICAgIHJhbmdlc1swXSA9IHswLCBtYXhsfTsKICAgIHNvcnQocmFuZ2VzICsgMSwgcmFuZ2VzICsgbiArIDEsCiAgICAgIFtdKGNvbnN0IHBhaXI8aW50LCBpbnQ+ICZscjEsIGNvbnN0IHBhaXI8aW50LCBpbnQ+ICZscjIpIHsKICAgICAgICByZXR1cm4gbHIxLnNlY29uZCA8IGxyMi5zZWNvbmQ7CiAgICB9KTsKCiAgICBpbnQgYW5zID0gMDsKCiAgICBhWzBdID0gMTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBhW2ldID0gMDsKCiAgICBmb3IgKGludCBpID0gbjsgaTsgaS0tKSB7CiAgICAgICAgaW50IEwgPSByYW5nZXNbaV0uZmlyc3Q7CiAgICAgICAgaW50IFIgPSByYW5nZXNbaV0uc2Vjb25kOwogICAgICAgIGludCBsbyA9IG1heChtYXhsLCByYW5nZXNbaSAtIDFdLnNlY29uZCk7CgogICAgICAgIGZvciAoaW50IGsgPSBuOyBrID49IDA7IGstLSkgewogICAgICAgICAgICBhW2tdID0gYVtrXSAqIChrIC0gTCArIFApOwogICAgICAgICAgICBpZiAoayA+IDApIGFba10gKz0gYVtrIC0gMV07CiAgICAgICAgICAgIGFba10gJT0gUDsKICAgICAgICB9CgogICAgICAgIHByb2QgPSBwcm9kICogaW52ZXJ0KFIgLSBMKSAlIFA7CgogICAgICAgIGFucyArPSAoZ2V0KFIgKyAxKSAtIGdldChsbyArIDEpICsgUCkgKiBwcm9kICUgUDsKICAgICAgICBpZiAobG8gPT0gbWF4bCkgYnJlYWs7IAogICAgfQoKICAgIGNvdXQgPDwgKChVIC0gYW5zICsgUCkgJSBQICsgUCkgJSBQOwoKICAgIHJldHVybiAwOwp9