#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int maxN = 1e3+7;
const int maxV = 90010;
//const int INF = 1e9+9;
//const ll INF = (1ll)<<60;
const int INF = 2e9+9;
const int MOD = 1e9+7;

map<int, vector<int> > S, T;
int d;
int n,q;
int main()
{
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++)
	{
		int s,t,x;
		scanf("%d%d%d",&s,&t,&x);
		S[s-x].push_back(x);
		T[t-x].push_back(x);
	}
	
	auto Sit = S.begin();
	auto Tit = T.begin();
	multiset<int> H;
	for (int i=1;i<=q;++i)
	{
		int d;
		scanf("%d",&d);
		while (Sit != S.end() && Sit->first <= d)
		{
			for (auto x : Sit->second)
				H.insert(x);
			Sit ++;
		}
		while (Tit != T.end() && Tit->first <= d)
		{
			for (auto x : Tit->second)
				H.erase(H.lower_bound(x));
			Tit ++;
		}
		int ans = 0;
		if(H.empty())
		{
			ans = -1;
		}
		else
			ans = *H.begin();
		cout<<ans<<endl;
	}

	return 0;
}