#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ld double
#define INPUT_FOR(v, n)  for (ll i = 0; i < n; i++) cin >> v[i];
#define FOR(i, l, r)     for (ll i = l; i < r; ++i)
#define FORR(i, l, r)    for (ll i = l; i >= r; --i)
#define boost            ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define vll              vector<ll>
#define pll              pair<ll, ll>
#define uos              unordered_set<ll>
#define endl             '\n'
const ll INF = 1e9 + 5;

void self_max (ll& a, const ll& b) { a = max(a, b); }
void self_min (ll& a, const ll& b) { a = min(a, b); }

inline void preprocessing () {
}

ll convertStringToInt(const string& s) {
    ll result = 0;
    FOR (i, 0, s.size())
        result += (pow(10, i) * (s[i] - 'a'));
    return result;
}



inline void solve() {
    ll x, y;
    string s;
    cin >> x >> y >> s;

    ll R = 0, L = 0, D = 0, U = 0;
    FOR (i, 0, s.size()) {
        switch(s[i]) {
            case 'U':
                ++U;
                continue;
            case 'D':
                ++D;
                continue;
            case 'R':
                ++R;
                continue;
            case 'L':
                ++L;
                continue;
            default:
                continue;
        }
    }

    bool valid = true;
    if (x < 0 && L < -x)
        valid = false;
    if (x > 0 && R < x)
        valid = false;
    if (y < 0 && D < -y)
        valid = false;
    if (y > 0 && U < y)
        valid = false;

    if (valid)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
}

int main() {
    boost;

    preprocessing();
    ll t; cin >> t; while (t--)
        solve();
}
### Prompt

Your task is to create a cpp solution 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>

using namespace std;

#define ll long long
#define ld double
#define INPUT_FOR(v, n)  for (ll i = 0; i < n; i++) cin >> v[i];
#define FOR(i, l, r)     for (ll i = l; i < r; ++i)
#define FORR(i, l, r)    for (ll i = l; i >= r; --i)
#define boost            ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define vll              vector<ll>
#define pll              pair<ll, ll>
#define uos              unordered_set<ll>
#define endl             '\n'
const ll INF = 1e9 + 5;

void self_max (ll& a, const ll& b) { a = max(a, b); }
void self_min (ll& a, const ll& b) { a = min(a, b); }

inline void preprocessing () {
}

ll convertStringToInt(const string& s) {
    ll result = 0;
    FOR (i, 0, s.size())
        result += (pow(10, i) * (s[i] - 'a'));
    return result;
}



inline void solve() {
    ll x, y;
    string s;
    cin >> x >> y >> s;

    ll R = 0, L = 0, D = 0, U = 0;
    FOR (i, 0, s.size()) {
        switch(s[i]) {
            case 'U':
                ++U;
                continue;
            case 'D':
                ++D;
                continue;
            case 'R':
                ++R;
                continue;
            case 'L':
                ++L;
                continue;
            default:
                continue;
        }
    }

    bool valid = true;
    if (x < 0 && L < -x)
        valid = false;
    if (x > 0 && R < x)
        valid = false;
    if (y < 0 && D < -y)
        valid = false;
    if (y > 0 && U < y)
        valid = false;

    if (valid)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
}

int main() {
    boost;

    preprocessing();
    ll t; cin >> t; while (t--)
        solve();
}
```