#include using namespace std; #define all(v) v.begin(),v.end() #define resort(v) sort(v.rbegin(),v.rend()) using ll = long long; using ull = unsigned long long; using vll=vector; using vvll = vector>; using P = pair; using vp=vector>; using djks=priority_queue>; const ll inf=1ll<<60; #define mod10 (ll)1e9+7 #define mod99 (ll)998244353 const double PI = acos(-1); #define rep(i,n) for (ll i=0;i=0;--i) #define rep2(i,a,n) for (ll i=a;i=a;--i) templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> n >> ka >> kb; vll va(ka), vb(kb); vvll a(n, vll(2, -1)); rep(i,ka) { int val; cin >> val; val--; a[val][0] = 1; va[i] = val; } rep(i,kb){ int val; cin >> val;val--; a[val][1] = 1; vb[i] = val; } ll diff = inf; int ai = 0, bi=0; vvll dist(n, vll(2, inf)); while(ai> q; rep(_, q) { cin >> s >> t; s--; t--; cout << min(min(dist[s][0]+dist[t][0], dist[s][1] + dist[t][1]), ll(max(s,t)-min(s,t))) << '\n'; } } int main() { cin.tie(0); ios::sync_with_stdio(false); int t=1; //cin >> t; while(t--)solve(); }