#include <bits/stdc++.h>
#include <iomanip>
using namespace std;
#define ll long long
#define db double
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define ppb pop_back
#define mpll map<ll, ll>
#define mcll map<char,ll>
#define mpll_p map<ll, pair<ll, ll>>
#define mp_pll map<pair<ll, ll>, ll>
#define vll vector<ll>
#define vpll vector<pair<ll, ll>>
#define vtll vector<tuple<ll,ll,ll>> 
#define vs vector<string>
#define vc vector<char>
#define sll set<ll>
#define spll set<pair<ll, ll>>
#define pi 3.14159265358979323846264338327
#define nope string::npos
void fast(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
bool primecheck(ll n){
  for(ll i=2;i<=sqrt(n);i++){
    if(n%i==0){
      return 0;
    }
  }
  return 1;
}
ll floorsqrt(ll x){
  if(x==0||x==1){return x;}
  ll s=1,e=x,a;
  while (s<=e)
  {
    ll mid=(s+e)/2;
    if(mid*mid==x){return mid;}
    if(mid*mid<x){s=mid+1; a=mid;}
    else{e=mid-1;}
  }
  return a;
}
int main(){
  fast();
  ll t; cin>>t;
  while (t--)
  {
    ll px,py; cin>>px>>py;
    string s; cin>>s;
    mcll m;
    for(auto x:s){
      m[x]++;
    }
    ll l=0,r=0,u=0,d=0;
    if(px>=0){
      r=px;
    }
    else{
      l=abs(px);
    }
    if(py>=0){
      u=py;
    }
    else{
      d=abs(py);
    }
    if(m['L']>=l && m['R']>=r && m['U']>=u && m['D']>=d){
      cout<<"YES"<<endl;
    }
    else{
      cout<<"NO"<<endl;
    }
  }
}
### 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>
#include <iomanip>
using namespace std;
#define ll long long
#define db double
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define ppb pop_back
#define mpll map<ll, ll>
#define mcll map<char,ll>
#define mpll_p map<ll, pair<ll, ll>>
#define mp_pll map<pair<ll, ll>, ll>
#define vll vector<ll>
#define vpll vector<pair<ll, ll>>
#define vtll vector<tuple<ll,ll,ll>> 
#define vs vector<string>
#define vc vector<char>
#define sll set<ll>
#define spll set<pair<ll, ll>>
#define pi 3.14159265358979323846264338327
#define nope string::npos
void fast(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
bool primecheck(ll n){
  for(ll i=2;i<=sqrt(n);i++){
    if(n%i==0){
      return 0;
    }
  }
  return 1;
}
ll floorsqrt(ll x){
  if(x==0||x==1){return x;}
  ll s=1,e=x,a;
  while (s<=e)
  {
    ll mid=(s+e)/2;
    if(mid*mid==x){return mid;}
    if(mid*mid<x){s=mid+1; a=mid;}
    else{e=mid-1;}
  }
  return a;
}
int main(){
  fast();
  ll t; cin>>t;
  while (t--)
  {
    ll px,py; cin>>px>>py;
    string s; cin>>s;
    mcll m;
    for(auto x:s){
      m[x]++;
    }
    ll l=0,r=0,u=0,d=0;
    if(px>=0){
      r=px;
    }
    else{
      l=abs(px);
    }
    if(py>=0){
      u=py;
    }
    else{
      d=abs(py);
    }
    if(m['L']>=l && m['R']>=r && m['U']>=u && m['D']>=d){
      cout<<"YES"<<endl;
    }
    else{
      cout<<"NO"<<endl;
    }
  }
}
```