J=lambda:map(int,input().split()) N,*_=J() C=[0]*(N+1) for a in J():C[a]+=1 D=[0] E=[0] for c in C:D+=[D[-1]+(c<1)];E+=[E[-1]+(c<2)] for q in range(sum(J())):l,r,L,R=J();m,M=max(l,L),min(r,R);print("YNeos"[D[r+1]>D[l]or D[R+1]>D[L]or(m<=M and E[M+1]>E[m])::2])