#include <bits/stdc++.h>
#define vc vector<ll>
#define um unordered_map<ll,ll>
#define ll long long
#define rep(i,a,b) for(__typeof(a) i=a; i<b; i++)
#define si(a) a.size()
#define all(a) a.begin(),a.end()
#define ss(a) a.second
#define ff(a) a.first
#define pb push_back
#define repit(i,a) for(auto i=a.begin(); i!=a.end(); i++)
#define take(arr,n) for(int i=0;i<n;i++)cin>>arr[i]
#define out(arr,n) for(int i=0;i<n;i++)cout<<arr[i]<<' '
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
#define reprev(i,b,a) for(__typeof(b) i=b; i>=a; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL)
#define doublearray vector<vector<int>>
#define mod 100000000000000001

using namespace std;
ll max(ll a, ll b){ return a>b?a:b; }
ll min(ll a, ll b){ return a<b?a:b; }
ll gcd(ll a, ll b){
    if(b==0) return a;
    return gcd(b,a%b);
}
ll lcm(ll a, ll b){
    return (a*b)/gcd(a,b);
}
// void dfs(vector<vector<ll>>&gp, int i, int p, vector<int>&lf){
//     if(si(gp[i])==1 && gp[i][0] == p){
//         lf[i] = 1; return;
//     }
//     else if(si(gp[i])==1){
//         lf[i] = 1;
//     }
//     rep(j,0,si(gp[i])){
//         if(gp[i][j]==p) continue;
//         else{
//             dfs(gp, gp[i][j], i, lf);
//         }
//     }
// }
int main() {
    fastio;
    int p; cin>>p;
    while(p--){
       ll x, y; cin>>x>>y;
       string s; cin>>s;
       ll u=0, d=0, r=0, l=0;
       rep(i,0,si(s)){
           if(s[i]=='L') l++;
           if(s[i]=='R') r++;
           if(s[i]=='U') u++;
           if(s[i]=='D') d++;
       }
       bool ans = true;
       if(x>=0 && r<x){
           ans = false;
       }
       else if(x<0 && l<(-x)){
           ans = false;
       }
       if(y>=0 && u<y){
           ans = false;
       }
       else if(y<0 && d<(-y)){
           ans = false;
       }
       if(ans) yes;
       else no;
    }
	return 0;
}

### Prompt

Please create a solution in CPP to the following problem:

You were dreaming that you are traveling to a planet named Planetforces on your personal spaceship. Unfortunately, its piloting system was corrupted and now you need to fix it in order to reach Planetforces.

<image>

Space can be represented as the XY plane. You are starting at point (0, 0), and Planetforces is located in point (p_x, p_y).

The piloting system of your spaceship follows its list of orders which can be represented as a string s. The system reads s from left to right. Suppose you are at point (x, y) and current order is s_i: 

  * if s_i = U, you move to (x, y + 1); 
  * if s_i = D, you move to (x, y - 1); 
  * if s_i = R, you move to (x + 1, y); 
  * if s_i = L, you move to (x - 1, y). 



Since string s could be corrupted, there is a possibility that you won't reach Planetforces in the end. Fortunately, you can delete some orders from s but you can't change their positions.

Can you delete several orders (possibly, zero) from s in such a way, that you'll reach Planetforces after the system processes all orders?

Input

The first line contains a single integer t (1 ≤ t ≤ 1000) — the number of test cases.

Each test case consists of two lines. The first line in each test case contains two integers p_x and p_y (-10^5 ≤ p_x, p_y ≤ 10^5; (p_x, p_y) ≠ (0, 0)) — the coordinates of Planetforces (p_x, p_y).

The second line contains the string s (1 ≤ |s| ≤ 10^5: |s| is the length of string s) — the list of orders.

It is guaranteed that the sum of |s| over all test cases does not exceed 10^5.

Output

For each test case, print "YES" if you can delete several orders (possibly, zero) from s in such a way, that you'll reach Planetforces. Otherwise, print "NO". You can print each letter in any case (upper or lower).

Example

Input


6
10 5
RRRRRRRRRRUUUUU
1 1
UDDDRLLL
-3 -5
LDLDLDDDR
1 2
LLLLUU
3 -2
RDULRLLDR
-1 6
RUDURUUUUR


Output


YES
YES
YES
NO
YES
NO

Note

In the first case, you don't need to modify s, since the given s will bring you to Planetforces.

In the second case, you can delete orders s_2, s_3, s_4, s_6, s_7 and s_8, so s becomes equal to "UR".

In the third test case, you have to delete order s_9, otherwise, you won't finish in the position of Planetforces.

### Response

```cpp
#include <bits/stdc++.h>
#define vc vector<ll>
#define um unordered_map<ll,ll>
#define ll long long
#define rep(i,a,b) for(__typeof(a) i=a; i<b; i++)
#define si(a) a.size()
#define all(a) a.begin(),a.end()
#define ss(a) a.second
#define ff(a) a.first
#define pb push_back
#define repit(i,a) for(auto i=a.begin(); i!=a.end(); i++)
#define take(arr,n) for(int i=0;i<n;i++)cin>>arr[i]
#define out(arr,n) for(int i=0;i<n;i++)cout<<arr[i]<<' '
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
#define reprev(i,b,a) for(__typeof(b) i=b; i>=a; i--)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL)
#define doublearray vector<vector<int>>
#define mod 100000000000000001

using namespace std;
ll max(ll a, ll b){ return a>b?a:b; }
ll min(ll a, ll b){ return a<b?a:b; }
ll gcd(ll a, ll b){
    if(b==0) return a;
    return gcd(b,a%b);
}
ll lcm(ll a, ll b){
    return (a*b)/gcd(a,b);
}
// void dfs(vector<vector<ll>>&gp, int i, int p, vector<int>&lf){
//     if(si(gp[i])==1 && gp[i][0] == p){
//         lf[i] = 1; return;
//     }
//     else if(si(gp[i])==1){
//         lf[i] = 1;
//     }
//     rep(j,0,si(gp[i])){
//         if(gp[i][j]==p) continue;
//         else{
//             dfs(gp, gp[i][j], i, lf);
//         }
//     }
// }
int main() {
    fastio;
    int p; cin>>p;
    while(p--){
       ll x, y; cin>>x>>y;
       string s; cin>>s;
       ll u=0, d=0, r=0, l=0;
       rep(i,0,si(s)){
           if(s[i]=='L') l++;
           if(s[i]=='R') r++;
           if(s[i]=='U') u++;
           if(s[i]=='D') d++;
       }
       bool ans = true;
       if(x>=0 && r<x){
           ans = false;
       }
       else if(x<0 && l<(-x)){
           ans = false;
       }
       if(y>=0 && u<y){
           ans = false;
       }
       else if(y<0 && d<(-y)){
           ans = false;
       }
       if(ans) yes;
       else no;
    }
	return 0;
}

```