#include <bits/stdc++.h>
using namespace std;

#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")

//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
//#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>

#define XX              first
#define YY              second
#define PB              push_back
#define MP              make_pair

#define NEWLINE         cerr << "\n";
#define HOISE           cerr << "hoise " << __LINE__ << "\n"
#define PAUSE           system("pause")
#define DEBUG(x)        cerr << #x << " = " << x << "\n"
#define FASTIO          ios_base::sync_with_stdio(false);cin.tie(NULL)

typedef long long ll;
typedef pair<int, int > pii;
typedef pair<ll, ll> pll;

const int INF = 1e9 + 23;
const ll INFL = 2e18 + 23;

inline void solve()
{
    int n;
    cin >> n;
    vector<int> a(4);
    for(int i = 0; i < 4; i++)
        cin >> a[i];

    for(int m = 0; m < (1<<4); m++){
        vector<int> b(4);
        for(int i = 0; i < 4; i++)
            b[i] = ((m>>i) & 1);
    
        for(int i = 0; i < 4; i++){
            a[i] -= (b[i] + b[(i+1)%4]);
        }

        bool ok = true;
        for(int i = 0; i < 4 and ok; i++){
            if(a[i] < 0) ok = false;
            if(a[i] > n-2) ok = false;
        }

        if(ok){
            cout << "YES\n";
            return;
        }

        for(int i = 0; i < 4; i++)
            a[i] += (b[i] + b[(i+1)%4]);
    }

    cout << "NO\n";
}

int32_t main()
{
    FASTIO;

    int tc;
    cin >> tc;
    for(int nc = 1; nc <= tc; nc++){
        solve();
    }    

    return 0;
}