import sys sys.setrecursionlimit(10**6) int1 = lambda x: int(x)-1 p2D = lambda x: print(*x, sep="\n") def II(): return int(sys.stdin.buffer.readline()) def LI(): return list(map(int, sys.stdin.buffer.readline().split())) def LI1(): return list(map(int1, sys.stdin.buffer.readline().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def LLI1(rows_number): return [LI1() for _ in range(rows_number)] def BI(): return sys.stdin.buffer.readline().rstrip() def SI(): return sys.stdin.buffer.readline().rstrip().decode() # dij = [(0, 1), (-1, 0), (0, -1), (1, 0)] # dij = [(0, 1), (-1, 0), (0, -1), (1, 0), (1, 1), (1, -1), (-1, 1), (-1, -1)] dij = [(0, 1), (1, 0), (1, 1), (1, -1)] inf = 10**16 # md = 998244353 md = 10**9+7 n,q=LI() aa=LI() bb=LI() ll=[1]*q rr=[n]*q l,r=1,n for i in range(q-1,-1,-1): a,b=aa[i],bb[i] if a>b:a,b=b,a l=max(1,l-1) if l==a:l+=1 if l==b:l+=1 r=min(n,r+1) if r==b:r-=1 if r==a:r-=1 ll[i]=l rr[i]=r for l,r in zip(ll,rr): if l>r: print("NO") exit() print("YES") print(ll[0]) now=ll[0] for l,r,a,b in zip(ll,rr,aa,bb): if l>now:now+=1 elif r