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

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n;
	cin >> n;
	int niz[n];
	cin >> niz[0];
	pair<bool, bool> niz1[n];
	niz1[0].first = true;
	niz1[0].second = true;
	if(n > 1){
		cin >> niz[1];
		niz1[1].second = true;
		if(niz[1] >= niz[0])
			niz1[1].first = true;
		else
			niz1[1].first = false;
	}
	for(int i = 2; i < n; i++){
		int t;
		cin >> t;
		niz[i] = t;
		if(niz[i] >= niz[i - 1]){
			niz1[i].first = true;
		}
		else{
			niz1[i].first = false;
		}
		if(niz[i] >= niz[i - 2]){
			niz1[i].second = true;
		}
		else{
			niz1[i].second = false;
		}
	}
	int q;
	cin >> q;
	for(int i = 0; i < q; i++){
		int l, r;
		cin >> l >> r;
		if(l == r) {
			cout << "DA" << '\n';
			continue;
		}
		l--;
		r--;
		bool t1 = niz1[l].first;
		bool t2 = niz1[l].second;
		bool t3 = niz1[l + 1].second;
		niz1[l].first = true;
		niz1[l].second = true; 
		niz1[l + 1].second = true;
		int falsevi = 0;
		bool ispisano = false;
		for(int j = l + 1; j <= r; j++){
			if(j == r && falsevi < 1){
				cout << "DA" << '\n';
				ispisano = true;
				break;
			}
			if(!niz1[j].first){
				falsevi++;
				if(falsevi > 1){
					cout << "NE" << '\n';
					ispisano = true;
					niz1[l].first = t1;
					niz1[l].second = t2;
					break;
				}
			}
			if(!niz1[j].second && niz1[j - 1].first){
				falsevi++;
				if(falsevi > 1){
					cout << "NE" << '\n';
					ispisano = true;
					niz1[l].first = t1;
					niz1[l].second = t2;
					break;
				}
			}
		}
		if(!ispisano){
			cout << "DA" << '\n';
		}
		niz1[l].first = t1;
		niz1[l].second = t2;
	}

	return 0;
}