#include <iostream>
#include <vector>

using namespace std;

void provera(vector<int>& a,pair<int,int>& lr,bool *odgovor){
    int i = lr.first,n = lr.second;
    int los = lr.first;
    while(a[i]<=a[i+1] && i < n)
        ++i;
    if(i == n){
        *odgovor = true;
        return;
    }
    los = i;
    ++i;
    while(a[i]<=a[i+1] && i < n)
        ++i;
    if(i == n){
        *odgovor = true;
        return;
    }

    *odgovor = false;
    lr = make_pair(los,i);
}

bool UNe(const vector<pair<int,int>>& ne,pair<int,int>& lr,bool* odgovor){
    *odgovor = false;
    for(int i = 0;i < ne.size();i++){
        if(lr.first > ne[i].first && ne[i].second > lr.second){
            *odgovor = true;
            return false;
        }

        if(lr.first <= ne[i].first && ne[i].second <= lr.second)
            return true;
    }
    return false;
}

int main()
{
    vector<pair<int,int>> NE;
    vector<int> A;
    bool odgovor;
    int n,q,broj;
    int l,r;



    cin >> n;

    for(int i = 0;i < n;i++){
        cin >> broj;
        A.push_back(broj);
    }
    cin >> q;

    vector<pair <int,int>> lr(q);
    for(int i = 0;i < q;i++){
        cin >> l >> r;
        lr[i]=make_pair(l-1,r-1);
    }

    for(int i = 0;i < q;i++){
        if(lr[i].second - lr[i].first < 3)
            cout << "DA" << endl;
        else{
            if(UNe(NE,lr[i],&odgovor)){
                cout << "NE" << endl;
            }
            else{
                if(odgovor == true){
                    cout << "DA" << endl;
                }
                else{
                    provera(A,lr[i],&odgovor);
                    if(odgovor){
                        cout << "DA" << endl;
                    }
                    else
                    {
                        NE.push_back(lr[i]);
                        cout << "NE" << endl;
                    }
                }

            }
        }
    }

    return 0;
}