#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<ll>   vl;
#define f(i,n)  for(i=0;i<n;i++)
#define f1(i,n)  for(i=1;i<n;i++)
#define fr(i,n) for(i=n-1;i>=0;i--)
#define em emplace_back
// #define mp make_pair
#define in insert
#define fi first
#define sc second
#define b begin
#define e end
#define l length
#define c clear
#define si size
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);
const double pi=3.141592653;
const ll infi=1000000001;
// const ll mod=1000000007;
// const ll mod=998244353;
const string no="NO\n",yes="YES\n",nl="\n";

// void dfs(vl v[],ll node,ll hai[]){
//     hai[node]=1;
//     for(auto i:v[node]){
//         if(hai[i]==0){
//             dfs(v,i,hai);
//         }
//     }
// }

// ll recur(vl v,ll in,ll m,ll n){
//     if(in==-1)  return 1000000000001;
//     ll d,e,c;
//     d=max(m/v[in],n*v[in]);
//     c=recur(v,in-1,m/v[in],n*v[in]);
//     e=recur(v,in-1,m,n);
//     return min(c,min(e,d));
// }

// ll bexpo(ll a,ll p){
//     ll x=1;
//     while(p){
//     if(p&1){
//         x=(x*a)%mod;
//     }
//     a=(a*a)%mod;
//     p>>=1;
//     }
//     return x;
// }
// int dx[8]{-1,0,0,1,-1,-1,1,1};
// int dy[8]{0,-1,1,0,-1,1,-1,1};
vi v[200009];
int p[200009];
int cc=0;
void dfs(int node,int par){
    cc++;
    p[node]++;
    for(auto j:v[node]){
        if(j!=par && p[j]==0){
            dfs(j,node);
        }
    }
}

int main() {

    // #ifndef ONLINE_JUDGE
    //     freopen("input.txt","r",stdin);
    //     freopen("output.txt","w",stdout);
    // #endif

    fastio
    int t=1;
    // cin>>t;
    ll n,m,i,l,bank,k,j,x,y,ans,mid,q;
    // string s;

    while(t--){ans=0;
        cin>>n;
        map<pll,int> mp;
        ll a[n];
        f(i,n)  cin>>a[i];
        f(i,n/2){
            if(a[i]!=a[n-1-i]){
                x=a[i];
                y=a[n-1-i];
                v[x].em(y);
                v[y].em(x);
            }
        }
        f1(i,200001){
            if(p[i]==0){
                cc=0;
                dfs(i,-1);
                ans+=cc-1;
            }
        }
        cout<<ans;
    }
    
    
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll mn,mx,a,t,v,add;
int n,q;
int main(){
    scanf("%d",&n);
    mn=1e18,mx=-1e18;
    for(int i=1;i<=n;++i){
        scanf("%lld%lld",&a,&t);
        if(t==1)add+=a,mn+=a,mx+=a;
        else if(t==2)mn=max(mn,a),mx=max(mx,a);
        else mn=min(mn,a),mx=min(mx,a);
    }
    scanf("%d",&q);
    while(q--){
        scanf("%lld",&v);
        printf("%lld\n",min(mn,max(mx,v+add)));
    }
    return 0;
}