#include <bits/stdc++.h>
using namespace std;


			

int main(){
	
	int N,Q;
	cin>>N>>Q;
	
	vector<pair<int,pair<int,int>>> V(N);
	for(int i=0;i<N;i++)scanf("%d %d %d",&V[i].second.first,&V[i].second.second,&V[i].first);
	sort(V.begin(),V.end());
	
	for(int i=0;i<N;i++){
		V[i].second.first-=V[i].first;
		V[i].second.second-=V[i].first;
	}
	
	vector<int> ans(Q,-1);
	
	set<int> S;
	vector<int> D(Q);
	for(int i=0;i<Q;i++){
		scanf("%d",&D[i]);
		S.insert(D[i]);
	}
	
	for(int i=0;i<N;i++){
		auto a = S.lower_bound(V[i].second.first);
		for(;a!=S.end();){
			if(*a<V[i].second.second){
				ans[lower_bound(D.begin(),D.end(),*a)-D.begin()]=V[i].first;
				a=S.erase(a);
			}
			else{
				break;
			}
		}
	}
	
	for(int i=0;i<Q;i++){
		printf("%d\n",ans[i]);
	}
	
	
	
	
	
	
	return 0;
}