#include<iostream>
#include<vector>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;
#define reps(i,j,n) for(int i = j ; i < n ; ++i)
#define rep(i, n) reps(i,0,n)
#define fr first
#define sc second
#define SQR(x) ((x)*(x))
#define INF (1 << 28)
typedef pair< int , int > Pt;

int main(){
  int Q;
  int N,X,Y;
  Pt Natume;
  int x[1000],y[1000];
  vector< vector<int> > set;

  cin >> Q;
  while(Q--){
    //Input
    cin >> N >> X >> Y;
    cin >> Natume.sc >> Natume.fr;
    set.resize(N);
    rep(i,N) cin >> x[i] >> y[i];
    rep(i,N) rep(j,N){
      if(SQR(x[i] - x[j]) + SQR(y[i] - y[j]) <= 2500){
        set[i].push_back(j);
      }
    }
    //end

    queue< Pt > que;
    int Say[1000],cnt = 0,flg = 1,END = 2*N*N,ans = 0;
    fill_n(Say,1000,-INF);
    rep(i,N){
      if(SQR(x[i] - Natume.sc) + SQR(y[i] - Natume.fr) <= 100){
        Say[i] = X;
        que.push(Pt(X,i));
      }
    }
    while(!que.empty()){
      Pt p = que.front(); que.pop();
      int now = p.sc , time = p.fr;
      cnt++;
      if(cnt > END){ flg--; break; }
      rep(i,set[now].size()){
        int e = set[now][i];
        if(time - Say[e] > Y){
          Say[e] = X + time;
          que.push(Pt(Say[e],e));
        }
      }
    }
    rep(i,N) ans = max(ans,Say[i]);

    //Output
    if(!flg) cout << "You're always welcome!" << endl;
    else cout << ans << endl;
    //end

    set.clear();
    }
}