def main():
    A, B = map( int, input().split())
    if A > B:
        A, B = B, A
    divisors = set()
    div = 1
    while div * div <= A:
        if A % div == 0:
            x = div
            y = A // div
            if B % x == 0:
                divisors.add(x)
            if B % y == 0:
                divisors.add(y)
        div = div + 1
    Q = int(input())
    divs = list(divisors)
    for i in range(0, Q):
        low, high = map( int, input().split())
        s, e, mid, sol = 0, len(divs) - 1, 0, -1
        while(s <= e):
            mid = s + (e - s) // 2
            if divs[mid] <= high:
                sol = mid
                s = mid + 1
            else:
                e = mid - 1
        if(divs[sol] < low):
            print(-1)
        else:
            print(divs[sol])

if __name__ == "__main__":
    main()