import sys
sys.setrecursionlimit(2147483647)
INF=float("inf")
MOD=10**9+7
input=lambda :sys.stdin.readline().rstrip()
def resolve():
    n,q=map(int,input().split())
    S,T,X=[0]*n,[0]*n,[0]*n
    for i in range(n):
        S[i],T[i],X[i]=map(int,input().split())
    D=[int(input()) for _ in range(q)]

    E=[]
    E+=[(s-x,1,x) for s,x in zip(S,X)]
    E+=[(t-x,2,x) for t,x in zip(T,X)]
    E+=[(d,3,i) for i,d in enumerate(D)]
    E.sort()
    from collections import defaultdict
    cnt=defaultdict(int)
    cnt[INF]=1

    from heapq import heappop,heappush
    Q=[INF]
    ans=[-1]*q
    for a,b,c in E:
        if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
    print(*ans,sep="\n")
resolve() import sys sys sys.setrecursionlimit(2147483647) sys.setrecursionlimit sys setrecursionlimit 2147483647 INF=float("inf") INF float("inf") float "inf" MOD=10**9+7 MOD 10**9+7 10**9 10 9 7 input=lambda :sys.stdin.readline().rstrip() input lambda :sys.stdin.readline().rstrip() sys.stdin.readline().rstrip() sys.stdin.readline().rstrip sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline rstrip def resolve():
    n,q=map(int,input().split())
    S,T,X=[0]*n,[0]*n,[0]*n
    for i in range(n):
        S[i],T[i],X[i]=map(int,input().split())
    D=[int(input()) for _ in range(q)]

    E=[]
    E+=[(s-x,1,x) for s,x in zip(S,X)]
    E+=[(t-x,2,x) for t,x in zip(T,X)]
    E+=[(d,3,i) for i,d in enumerate(D)]
    E.sort()
    from collections import defaultdict
    cnt=defaultdict(int)
    cnt[INF]=1

    from heapq import heappop,heappush
    Q=[INF]
    ans=[-1]*q
    for a,b,c in E:
        if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
    print(*ans,sep="\n") resolve n,q=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split q S,T,X=[0]*n,[0]*n,[0]*n S [0]*n [0] 0 n T [0]*n [0] 0 n X [0]*n [0] 0 n for i in range(n):
        S[i],T[i],X[i]=map(int,input().split())
     i range(n) range n S[i],T[i],X[i]=map(int,input().split()) S[i] S i map(int,input().split()) map int input().split() ().split () input split T[i] T i X[i] X i int(input()) for _ in range(q) for _ in range(q) _ range(q) range q for _ in range(q) int(input()) int input() input D=[int(input()) for _ in range(q)] D [int(input()) for _ in range(q)] E=[] E [] (s-x,1,x) for s,x in zip(S,X) for s,x in zip(S,X) s x zip(S,X) zip S X for s,x in zip(S,X) (s-x,1,x) s-x s x 1 x E+=[(s-x,1,x) for s,x in zip(S,X)] E [(s-x,1,x) for s,x in zip(S,X)] (t-x,2,x) for t,x in zip(T,X) for t,x in zip(T,X) t x zip(T,X) zip T X for t,x in zip(T,X) (t-x,2,x) t-x t x 2 x E+=[(t-x,2,x) for t,x in zip(T,X)] E [(t-x,2,x) for t,x in zip(T,X)] (d,3,i) for i,d in enumerate(D) for i,d in enumerate(D) i d enumerate(D) enumerate D for i,d in enumerate(D) (d,3,i) d 3 i E+=[(d,3,i) for i,d in enumerate(D)] E [(d,3,i) for i,d in enumerate(D)] E.sort() E.sort E sort from collections import defaultdict cnt=defaultdict(int) cnt defaultdict(int) defaultdict int cnt[INF]=1 cnt[INF] cnt INF 1 from heapq import heappop,heappush Q=[INF] Q [INF] INF ans=[-1]*q ans [-1]*q [-1] -1 q for a,b,c in E:
        if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
     a b c E if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
     b==1 b 1 heappush(Q,c) heappush Q c cnt[c]+=1 cnt[c] cnt c 1 elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
         b==2 b 2 cnt[c]-=1 cnt[c] cnt c 1 while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
             cnt[Q[0]]==0 cnt[Q[0]] cnt Q[0] Q 0 0 heappop(Q) heappop Q x=Q[0] x Q[0] Q 0 if(x!=INF): ans[c]=x
     x!=INF x INF print(*ans,sep="\n") print *ans ans sep="\n" sep "\n" resolve() resolve def resolve():
    n,q=map(int,input().split())
    S,T,X=[0]*n,[0]*n,[0]*n
    for i in range(n):
        S[i],T[i],X[i]=map(int,input().split())
    D=[int(input()) for _ in range(q)]

    E=[]
    E+=[(s-x,1,x) for s,x in zip(S,X)]
    E+=[(t-x,2,x) for t,x in zip(T,X)]
    E+=[(d,3,i) for i,d in enumerate(D)]
    E.sort()
    from collections import defaultdict
    cnt=defaultdict(int)
    cnt[INF]=1

    from heapq import heappop,heappush
    Q=[INF]
    ans=[-1]*q
    for a,b,c in E:
        if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
    print(*ans,sep="\n") def resolve():
    n,q=map(int,input().split())
    S,T,X=[0]*n,[0]*n,[0]*n
    for i in range(n):
        S[i],T[i],X[i]=map(int,input().split())
    D=[int(input()) for _ in range(q)]

    E=[]
    E+=[(s-x,1,x) for s,x in zip(S,X)]
    E+=[(t-x,2,x) for t,x in zip(T,X)]
    E+=[(d,3,i) for i,d in enumerate(D)]
    E.sort()
    from collections import defaultdict
    cnt=defaultdict(int)
    cnt[INF]=1

    from heapq import heappop,heappush
    Q=[INF]
    ans=[-1]*q
    for a,b,c in E:
        if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
    print(*ans,sep="\n") resolve INF=float("inf") float("inf") INF input=lambda :sys.stdin.readline().rstrip() lambda :sys.stdin.readline().rstrip() input MOD=10**9+7 10**9+7 MOD
import sys
sys.setrecursionlimit(2147483647)
INF=float("inf")
MOD=10**9+7
input=lambda :sys.stdin.readline().rstrip()
def resolve():
    n,q=map(int,input().split())
    S,T,X=[0]*n,[0]*n,[0]*n
    for i in range(n):
        S[i],T[i],X[i]=map(int,input().split())
    D=[int(input()) for _ in range(q)]

    E=[]
    E+=[(s-x,1,x) for s,x in zip(S,X)]
    E+=[(t-x,2,x) for t,x in zip(T,X)]
    E+=[(d,3,i) for i,d in enumerate(D)]
    E.sort()
    from collections import defaultdict
    cnt=defaultdict(int)
    cnt[INF]=1

    from heapq import heappop,heappush
    Q=[INF]
    ans=[-1]*q
    for a,b,c in E:
        if(b==1):
            heappush(Q,c)
            cnt[c]+=1
        elif(b==2): # 本来はここでqからcを削除したいが、できないためb==3で処理する
            cnt[c]-=1
        else:
            while(cnt[Q[0]]==0): # 本来削除されるべき通行止めをここで消す
                heappop(Q)
            x=Q[0]
            if(x!=INF): ans[c]=x
    print(*ans,sep="\n")
resolve()