using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Tackas(List<int> niz)
        {
            for (int i = 1; i < niz.Count - 1; i++)
            {
                if (niz[i] > niz[i - 1] && niz[i] > niz[i + 1]) { niz.Remove(niz[i]); break; }
                else if (niz[i] < niz[i - 1] && niz[i] < niz[i + 1]) { niz.Remove(niz[i]); break; }
            }
        }
        static int binarySearch(List<int> niz, int levo, int desno)
        {
            if (levo <= desno)
            {
                int mid = (levo + desno) / 2;
                if (niz[mid - 1] < niz[mid] && niz[mid] > niz[mid + 1]) return mid;
                if (niz[mid] < niz[mid + 1]) return binarySearch(niz, mid + 1, desno);
                else return binarySearch(niz, levo, mid - 1);
            }
            return -1;
        }
        static int Bitonicki(List<int> niz, int n)
        {
            int i, j;
            for (i = 1; i < n; i++)
            {
                if (niz[i] > niz[i - 1]) continue;
                if (niz[i] <= niz[i - 1]) break;
            }
            if (i == n - 1) return 1;
            for (j = i + 1; j < n; j++)
            {
                if (niz[j] < niz[j - 1]) continue;
                if (niz[j] >= niz[j - 1]) break;
            }
            i = j;
            if (i != n) return 0;
            return 1;
        }
        static bool Sortiran(List<int> niz)
        {
            int[] s = new int[niz.Count];
            for (int i = 0; i < niz.Count; i++)
            {
                s[i] = niz[i];
            }
            Array.Sort(s);
            for (int i = 0; i < niz.Count; i++)
            {
                if (s[i] == niz[i]) continue;
                else return false;
            }
            return true;
        }
        static bool SortiranOpadajuce(List<int> niz)
        {
            int[] s = new int[niz.Count];
            for (int i = 0; i < niz.Count; i++)
            {
                s[i] = niz[i];
            }
            Array.Sort(s);
            Array.Reverse(s);
            for (int i = 0; i < niz.Count; i++)
            {
                if (s[i] == niz[i]) continue;
                else return false;
            }
            return true;
        }
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] niz = new int[n];
            string[] ulaz = Console.ReadLine().Split(' ');
            for (int i = 0; i < n; i++)
            {
                niz[i] = int.Parse(ulaz[i]);
            }
            int q = int.Parse(Console.ReadLine());
            List<string> odgovori = new List<string>(q);
            while (q > 0)
            {
                string[] u2 = Console.ReadLine().Split(' ');
                int p = int.Parse(u2[0]) - 1;
                int k = int.Parse(u2[1]) - 1;
                List<int> trenutni = new List<int>(n);
                for (int j = p; j <= k; j++)
                {
                    trenutni.Add(niz[j]);
                }
                Tackas(trenutni);
                if (Sortiran(trenutni) || SortiranOpadajuce(trenutni)) odgovori.Add("DA");
                if (odgovori.Contains("DA")) { Console.WriteLine("DA");  }
                else Console.WriteLine("NE");
                odgovori.Remove("DA");
                q--;
            }
        }
    }
}