#include <bits/stdc++.h>
 
using namespace std;
 
typedef long long ll;
typedef unsigned u;
 
#define INF INT_MAX
#define MOD (1000000007)
#define PI arccos(-1)
 
#define pll pair<long long, long long>
#define mp make_pair
 
#define vll vector<ll>
#define vb vector<bool>
#define vs vector<string>
#define vp vector<pll>
#define pb push_back
#define all(v) v.begin(), v.end()
#define print_vect(v) for (auto it : v) cout << it << " ";
 
#define pq priority_queue<ll>
#define pqg priority_queue<ll, vll, greater<ll>>
#define set set<ll>
#define mset multiset<ll>
#define queue queue<ll>
 
ll add(ll a, ll b) { a += b; return a >= MOD ? a - MOD : a; }
ll sub(ll a, ll b) { a -= b; return a < 0 ? a + MOD : a; }
ll mul(ll a, ll b) { return (long long)(a) * (long long)(b) % MOD; }
 
void sadd(ll &a, ll b) { a = add(a, b); }
void ssub(ll &a, ll b) { a = sub(a, b); }
void smul(ll &a, ll b) { a = mul(a, b); }
 
ll nzs(ll a, ll b){ 
    return (a / __gcd(a, b)) * b; 
}
 
const ll N = 2 * 1e5 + 5;
 
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
 
    ll n;
    cin >> n;
    vll v(n);
    vll count(N, 0);
    for(ll i = 0 ; i < n ; i++){
        cin >> v[i];
    }
    vll ans(n + 1, 0);
    for(ll i = 1 ; i < n ; i++){
        ans[i] += ans[i - 1];
        if(v[i - 1] > v[i]){
            //opcija: i - 1:
            ll j = i - 1;
            ll pos1 = 0;
            while(j >= 0 && v[i] < v[j]){
                pos1++;
                j--;
            }
            j = i;
            ll pos2 = 0;
            while(j < n && v[i - 1] > v[j]){
                pos2++;
                j++;
            }
            ans[i] += min(pos1, pos2);
        }
    }

    ll q;
    cin >> q;
    for(ll i = 0 ; i < q ; i++){
        ll a, b;
        cin >> a >> b;
        ll br = ans[b - 1] - ans[a - 1];
        if(br <= 1){
            cout << "DA\n";
        }
        else{
            cout << "NE\n";
        }
    }
    return 0;
}