#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b,len,maxi;
int s[1000001],h[1000001];
int t,l,r;
int lowbit(int x){
return x&(-x);
}
void update(int x){
while(x<=len){
h[x]=(s[x]%a+s[x]%b);
int lx=lowbit(x);
for(int i=1;i<lx;i++){
h[x]=min(h[x],h[x-i]);
}
maxi=max(maxi,h[x]);
x+=lx;
}
}
int query(int x, int y) {
int ans=0;
while(y>=x) {
ans=max(ans,(s[y]%a+s[y]%b));
--y;
while(y-lowbit(y)>=x) {
ans=max(ans,h[y]);
y-=lowbit(y);
}
}
return ans;
}
signed main(){
cin >> a >> b;
len=a*b;
for(int i=1;i<=len;++i){
s[i]=i;
update(i);
}
cin >> t;
while(t--){
cin >> l >> r;
if(r-l+1>=len){
cout << maxi;
putchar('\n');
continue;
}
l%=len;
r%=len;
int ans;
if(r>=l)ans=query(l,r);
else ans=max(query(1,r),query(l,len));
cout << ans;
putchar('\n');
}
return 0;
}