#include<bits/stdc++.h>
using namespace std;
inline int gcd(int a,int b){return b?gcd(b,a%b):a;}
int a,b;
int main(){
cin>>a>>b;
int g=gcd(a,b);
set<int,greater<int> >s;
for(int i=1;i*i<=g;i++){
if(g%i==0){
s.insert(i);
s.insert(g/i);
}
}
int q,l,r;
cin>>q;
while(q--){
cin>>l>>r;
auto it=s.lower_bound(r);
if(it==s.end())cout<<"-1\n";
else{
if(*it<l)cout<<"-1\n";
else cout<<*it<<"\n";
}
}
return 0;
}