#include <bits/stdc++.h>
 
#define SPED                                                                                                           \
    ios_base::sync_with_stdio(false);                                                                                  \
    cin.tie(0);                                                                                                        \
    cout.tie(0);
 
#define fi first
#define se second
#define lint long long
#define int lint
 
const lint INF = 1e15;
 
using namespace std;
 
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
 
lint rand(lint l, lint r)
{
    assert(l <= r);
    return l + rng() % (r - l + 1);
}
 
void makeTest()
{
    ofstream outo("DIVSEQ.inp");
    int n, q;
    n = rand(100, 100);
    q = rand(100, 100);
 
    outo << n << " " << q << endl;
 
    for (int i = 1; i <= n; i++)
        outo << rand(1, 1000000000) << " ";
 
    outo << endl;
 
    for (int i = 1; i <= q; i++)
    {
        lint l = rand(1, n );
        lint r = rand(l ,   n);
 
        outo << l << " " << r << endl;
    }
}
 
signed main()
{
    srand(time(0));
 
    for (int Test = 1; Test <= 1000; Test++)
    {
        makeTest();
        system("trau.exe");
        system("DIVSEQ.exe");
 
        if (system("fc trau.out DIVSEQ.out") != 0)
            return cout << "Sai o test " << Test, 0;
 
        else
            cout << "Ok " << Test << "\n";
    }
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIFNQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBjaW4udGllKDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgY291dC50aWUoMCk7CgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgbGludCBsb25nIGxvbmcKI2RlZmluZSBpbnQgbGludAoKY29uc3QgbGludCBJTkYgPSAxZTE1OwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCm10MTk5MzdfNjQgcm5nKGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7CgpsaW50IHJhbmQobGludCBsLCBsaW50IHIpCnsKICAgIGFzc2VydChsIDw9IHIpOwogICAgcmV0dXJuIGwgKyBybmcoKSAlIChyIC0gbCArIDEpOwp9Cgp2b2lkIG1ha2VUZXN0KCkKewogICAgb2ZzdHJlYW0gb3V0bygiRElWU0VRLmlucCIpOwogICAgaW50IG4sIHE7CiAgICBuID0gcmFuZCgxMDAsIDEwMCk7CiAgICBxID0gcmFuZCgxMDAsIDEwMCk7CgogICAgb3V0byA8PCBuIDw8ICIgIiA8PCBxIDw8IGVuZGw7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIG91dG8gPDwgcmFuZCgxLCAxMDAwMDAwMDAwKSA8PCAiICI7CgogICAgb3V0byA8PCBlbmRsOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBsaW50IGwgPSByYW5kKDEsIG4gKTsKICAgICAgICBsaW50IHIgPSByYW5kKGwgLCAgIG4pOwoKICAgICAgICBvdXRvIDw8IGwgPDwgIiAiIDw8IHIgPDwgZW5kbDsKICAgIH0KfQoKc2lnbmVkIG1haW4oKQp7CiAgICBzcmFuZCh0aW1lKDApKTsKCiAgICBmb3IgKGludCBUZXN0ID0gMTsgVGVzdCA8PSAxMDAwOyBUZXN0KyspCiAgICB7CiAgICAgICAgbWFrZVRlc3QoKTsKICAgICAgICBzeXN0ZW0oInRyYXUuZXhlIik7CiAgICAgICAgc3lzdGVtKCJESVZTRVEuZXhlIik7CgogICAgICAgIGlmIChzeXN0ZW0oImZjIHRyYXUub3V0IERJVlNFUS5vdXQiKSAhPSAwKQogICAgICAgICAgICByZXR1cm4gY291dCA8PCAiU2FpIG8gdGVzdCAiIDw8IFRlc3QsIDA7CiAgICAgICAgCiAgICAgICAgZWxzZQogICAgICAgICAgICBjb3V0IDw8ICJPayAiIDw8IFRlc3QgPDwgIlxuIjsKICAgIH0KfQo=