#include<bits/stdc++.h>
using namespace std;
void *wmem;
template<class T1, class T2, class T3> void sortA_L(int N, T1 a[], T2 b[], T3 c[], void *mem = wmem){
  int i;
  pair<T1, pair<T2, T3> > *arr=(pair<T1, pair<T2, T3> > *) mem;
  for(i=0;i<N;i++){
    arr[i].first = a[i];
    arr[i].second.first = b[i];
    arr[i].second.second = c[i];
  }
  sort(arr, arr+N);
  for(i=0;i<N;i++){
    a[i] = arr[i].first;
    b[i] = arr[i].second.first;
    c[i] = arr[i].second.second;
  }
}
inline void rd(int &x){
  int k, m=0;
  x=0;
  for(;;){
    k = getchar_unlocked();
    if(k=='-'){
      m=1;
      break;
    }
    if('0'<=k&&k<='9'){
      x=k-'0';
      break;
    }
  }
  for(;;){
    k = getchar_unlocked();
    if(k<'0'||k>'9'){
      break;
    }
    x=x*10+k-'0';
  }
  if(m){
    x=-x;
  }
}
inline void wt_L(char a){
  putchar_unlocked(a);
}
inline void wt_L(int x){
  char f[10];
  int m=0, s=0;
  if(x<0){
    m=1;
    x=-x;
  }
  while(x){
    f[s++]=x%10;
    x/=10;
  }
  if(!s){
    f[s++]=0;
  }
  if(m){
    putchar_unlocked('-');
  }
  while(s--){
    putchar_unlocked(f[s]+'0');
  }
}
template<class T> inline T getFirst(multiset<T> &a){
  return *(a.begin());
}
template<class T> inline T getFirst(set<T> &a){
  return *(a.begin());
}
char memarr[96000000];
int N;
int Q;
int S[200000];
int T[200000];
int X[200000];
int D[200000];
int res[200000];
int pl[600000];
int tp[600000];
int ev[600000];
int sz;
int main(){
  int i, j, k;
  set< int > s;
  wmem = memarr;
  rd(N);
  rd(Q);
  {
    int Lj4PdHRW;
    for(Lj4PdHRW=0;Lj4PdHRW<N;Lj4PdHRW++){
      rd(S[Lj4PdHRW]);
      rd(T[Lj4PdHRW]);
      rd(X[Lj4PdHRW]);
    }
  }
  {
    int KL2GvlyY;
    for(KL2GvlyY=0;KL2GvlyY<Q;KL2GvlyY++){
      rd(D[KL2GvlyY]);
    }
  }
  sz = 0;
  for(i=0;i<N;i++){
    pl[sz] = X[i]-T[i];
    tp[sz] = -1;
    ev[sz] = i;
    sz++;
    pl[sz] = X[i]-S[i];
    tp[sz] = -10;
    ev[sz] = i;
    sz++;
  }
  for(i=0;i<Q;i++){
    pl[sz] = -D[i];
    tp[sz] = -100;
    ev[sz] = i;
    sz++;
  }
  sortA_L(sz, pl, tp, ev);
  for(k=0;k<sz;k++){
    if(tp[k]==-1){
      s.insert(X[ev[k]]);
    }
    if(tp[k]==-10){
      s.erase(X[ev[k]]);
    }
    if(tp[k]==-100){
      if(s.size()==0){
        res[ev[k]] = -1;
      }
      else{
        res[ev[k]] = getFirst(s);
      }
    }
  }
  {
    int Q5VJL1cS;
    for(Q5VJL1cS=0;Q5VJL1cS<Q;Q5VJL1cS++){
      wt_L(res[Q5VJL1cS]);
      wt_L('\n');
    }
  }
  return 0;
}
// cLay varsion 20190526-1

// --- original code ---
// int N, Q;
// int S[2d5], T[2d5], X[2d5];
// int D[2d5];
// 
// int res[2d5];
// 
// int pl[6d5], tp[6d5], ev[6d5], sz;
// 
// {
//   int i, j, k;
//   set< int > s;
// 
//   rd(N,Q,(S,T,X)(N),D(Q));
// 
//   sz = 0;
//   rep(i,N){
//     pl[sz] = X[i]-T[i];
//     tp[sz] = -1;
//     ev[sz] = i;
//     sz++;
// 
//     pl[sz] = X[i]-S[i];
//     tp[sz] = -10;
//     ev[sz] = i;
//     sz++;
//   }
//   rep(i,Q){
//     pl[sz] = -D[i];
//     tp[sz] = -100;
//     ev[sz] = i;
//     sz++;
//   }
// 
//   sortA(sz, pl, tp, ev);
// 
//   rep(k,sz){
//     if(tp[k]==-1){
//       s.insert(X[ev[k]]);
//     }
//     if(tp[k]==-10){
//       s.erase(X[ev[k]]);
//     }
//     if(tp[k]==-100){
//       if(s.size()==0){
//         res[ev[k]] = -1;
//       } else {
//         res[ev[k]] = getFirst(s);
//       }
//     }
//   }
// 
//   wtLn(res(Q));
// }


Measured memory_bytes: 29056