/*
#include <stdio.h>
#include <stack>
using namespace std;
int main(void)
{
stack<int>st;
int k,a,sum=0;
scanf("%d",&k);
for(int i=0;i<k;i++)
{
scanf("%d",&a);
if(a==0)
{
st.pop();
}
else st.push(a);
}
while(!st.empty())
{
sum += st.top();
st.pop();
}
printf("%d",sum);
}
*/
/*
#include <stdio.h>
#include <string.h>
#include <stack>
using namespace std;
int main(void)
{
stack<int>st;
int n,a;
char str[1000];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",str);
if(strcmp(str,"push(")==0)
{
scanf("%d )",&a);
st.push(a);
}
else if(strcmp(str,"top()")==0)
{
if(st.empty())
printf("-1\n");
else printf("%d\n",st.top());
}
else if(strcmp(str,"pop()")==0)
{
if(!st.empty())
st.pop();
}
else if(strcmp(str,"size()")==0)
{
printf("%d\n",st.size());
}
else if(strcmp(str,"empty()")==0)
{
if(st.empty())
{
printf("true\n");
}
else printf("false\n");
}
}
}
*/
/*
#include <stdio.h>
#include <string.h>
#include <stack>
using namespace std;
int main(void)
{
char a[101],b[101];
int o[1000];
int len;
stack<int>stA;
stack<int>stB;
scanf("%s", a);
scanf("%s", b);
for(int i=0; i < strlen(a); i++)
{
stA.push(a[i]);
}
for(int i=0; i < strlen(b); i++)
{
stB.push(b[i]);
}
if(stA.size()>stB.size())
{
len = stB.size();
}
else
len = stA.size();
int q=0,i;
for(i=0; i<len; i++)
{
if(stA.top()-48+stB.top()-48+q>9)
{
o[i]=(stA.top()-48+stB.top()-48+q-10);
q=1;
}
else
{
o[i]=(stA.top()-48+stB.top()-48+q);
q=0;
}
stA.pop();
stB.pop();
}
if(stA.size()>stB.size())
{
len = i+stA.size();
for(; i<len; i++)
{
if(stA.top()-48+q>9)
{
o[i]=(stA.top()-48+q-10);
q=1;
}
else
{
o[i]=(stA.top()-48+q);
q=0;
}
stA.pop();
stB.pop();
}
}
else
{
len = i+stB.size();
for(; i<len; i++)
{
if(stB.top()-48+q>9)
{
o[i]=(stB.top()-48+q-10);
q=1;
}
else
{
o[i]=(stB.top()-48+q);
q=0;
}
stA.pop();
stB.pop();
}
}
if(q>0)
printf("1");
for(int i=len-1;i>-1;i--)
{
printf("%d",o[i]);
}
}
*/
/*
#include <stdio.h>
#include <stack>
using namespace std;
int main(void)
{
int n,cnt=1,d=0;
char str[1000];
stack<char>a;
scanf("%d ", &n);
for(int i=0;i<n;i++)
{
char c;
scanf("%c",&c);
a.push(c);
}
for(int i=0;i<n;i++)
{
str[d++]=a.top();
a.pop();
if(cnt==3)
{
str[d++]=',';
cnt=0;
}
cnt++;
}
if(str[d-1]!=',')
{
printf("%c",str[d-1]);
}
for(int i=d-2;i>-1;i--)
{
printf("%c",str[i]);
}
}
*/
/*
#include <stdio.h>
int main(void)
{
int n,s,num=-1,a;
scanf("%d %d",&n,&s);
for(int i=0;i<n;i++)
{
scanf("%d",&a);
if(a==s)
num=i+1;
}
printf("%d",num);
}
*/
/*
#include <stdio.h>
int main(void)
{
int n,m.ar[1000];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",ar[i]);
}
scanf("%d",&m);
for(int i=0;i<m;i++)
{
}
}
*/
/*
#include <stdio.h>
int main(void)
{
int n,k,a,q=0,w;
scanf("%d %d",&n,&k);
for(int i=0;i<n;i++)
{
scanf("%d",&a);
if(a>=k&&q==0)
{
q=1;
w=i+1;
}
}
if(q==1)
printf("%d",w);
else printf("%d",n+1);
}
*/
//binary search
#include <stdio.h>
int ar1[1000000];
int bs(int s, int e, int k)// ar1[s] ~ ar1[e] 에서 k값의 위치를 리턴
{
int mid = (s+e)/2;
if(s>e) return -1;
if(ar1[mid]==k) return mid+1;
else if(ar1[mid]<k) return bs(mid+1,e,k);
else return bs(s,mid-1,k);
}
int main(void)
{
int n,m,a;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&ar1[i]);
}
scanf("%d",&m);
for(int i=0;i<m;i++)
{
// m이 ar1이라는 배열의 몇번째에 있는지 ?
scanf("%d",&a);
printf("%d ",bs(0,n,a));
}
}



