#include <bits/stdc++.h>
#define FAST {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);}
#define ll long long
#define ull unsigned long long
#define pqueue priority_queue
#define pb push_back
#define fi first
#define se second
#define ld long double
#define pii pair<int,int>
#define pll pair<long long,long long>
#define all(a) (a).begin(), (a).end()
#define mp make_pair
using namespace std;
/*
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#define ordered_set tree<pll, null_type,less<pll>, rb_tree_tag,tree_order_statistics_node_update>
*/
// order_of_key -> # less than k
// find_by_order -> k-th element
// pq max element

const int NMAX=200010;

int dd[NMAX];
int d1[NMAX];
int d2[NMAX];
int p[NMAX];
int ps[NMAX];
int pp[NMAX];
int v[NMAX];
int main () {
    FAST
    int n;
    cin >> n;

    bool nd = false;
    for (int i = 0 ; i < n ; i++ ) {
        cin >> v[i];
        if ( v[i] > 2 ) {
            nd=true;
        }
    }

    if ( !nd ) {
        for (int i = 1 ; i < n-1 ; i++ ) {
            if ( v[i] < v[i-1] && v[i-1] > v[i] ) {
                dd[i] = 1;
                dd[i] += dd[i-1];
            }
        }
        for (int i = 1 ; i < n ; i++ ) {
            if ( v[i] < v[i-1] ) p[i] = 1;
            ps[i] = ps[i-1] + p[i];
        }
        for (int i = 0 ; i < n-1 ; i++ ) {
            if ( v[i] > v[i+1] ) pp[i] = 1;
        }

        int q;
        cin >> q;
        while(q--){
            int l,r;
            cin >> l >> r;
            r--;l--;
            if ( pp[l] + (r>l+1?p[r]:0) + max(0, ps[r-1]-ps[l+1]) > 1 ){
                cout << "NE" <<endl;
            }
            else if ( pp[l] || p[r] )
                cout << "DA"<<endl;
            else {
                if ( dd[r-1]-dd[l] == 0 && ps[r]-ps[l]) {
                    cout << "NE" << endl;
                }
                else cout << "DA" << endl;
            }
        }
        return 0;
    }

    for (int i = 1 ; i < n ; i++ ) {
        if ( v[i] < v[i-1] ) p[i] = 1;
        p[i] += p[i-1];
        //cout << p[i];
    }


    int q;
    cin >> q;
    while(q--){
        int l,r;
        cin >> l >> r;
        r--;l--;
        if ( p[r]-p[l] > 1 ) {
            cout << "NE" <<endl;
        }
        else cout << "DA"<<endl;
    }

}