#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define vi vector<int>
template <typename T>
ostream &operator<<(ostream &os, vector<T> &v)
{
    for (auto &i : v)
        os << i << ' ';
    return os;
}
template <typename T>
istream &operator>>(istream &is, vector<T> &v)
{
    for (auto &i : v)
        is >> i;
    return is;
}

ll gcd(int a, int b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
int32_t main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int a, b;
    cin >> a >> b;
    int g = gcd(a, b);

    vi divs;
    for (int i = 1; i * i <= g; i++)
    {
        if (g % i == 0)
        {
            divs.emplace_back(i);
            if (i != g / i)
                divs.emplace_back(g / i);
        }
    }

    sort(divs.begin(), divs.end());
    int q;
    cin >> q;
    while (q--)
    {
        int l, h;
        cin >> l >> h;

        auto it = upper_bound(divs.begin(), divs.end(), h) - divs.begin();
        it--;
        if (divs[it] >= l)
            cout << divs[it] << '\n';
        else
            cout << -1 << '\n';
    }

    return 0;
}
