문제링크 : 배
n=int(input())
crane=list(map(int, input().split()))
m=int(input())
box=list(map(int, input().split()))
crane.sort(reverse=True)
box.sort(reverse=True)
time=0
count=0
visited=[0 for _ in range(m)]
crane_visited=[0]*n
if max(crane) < max(box):
print(-1)
else:
while count<len(box):
for i in range(n):
while crane_visited[i]<len(box):
if not visited[crane_visited[i]] and crane[i]>=box[crane_visited[i]]:
visited[crane_visited[i]]=True
count+=1
crane_visited[i]+=1
break
crane_visited[i]+=1
time+=1
print(time)