#include
using namespace std;
ifstream cin("bitona.in");
ofstream cout("bitona.out");
/// crestere ... scadere
/// Cazul 1 : secventa este bitona din start
/// Cazul 2 : secventa este strict crescatoare -> rotim la stanga odata.
/// Cazul 3 : secventa este strict descrescatoare -> rotim la dreapta odata.
/// Cazul 4 : sa luam exemplul
/// 6 4 3 6 8 10 19 9 (initial)
// 3 6 8 10 19 9 6 4 ->
// daca secventa este la inceput descrescatoare trebuie verificat
// ca primul element sa fie mai mic decat ultimul.
/// mai este si cazul invers in care secventa este la inceput crescatoare
// si atunci o putem face bitona daca primul element este mai mare decat ultimul
int main()
{
bool cresc = true, descresc = true;
int initDir = 0, currentDir = 0, prevDir = 0, nrschimbari = 0;
int n, prev, current, primul, ultimul ; cin >> n;
if(n == 1) return false;
if(n == 2) return true;
// Acum n>=3
cin >> primul ; prev = primul;
for(int i = 2;i<=n;i++)
{
cin >> current;
ultimul = current;
if(current > prev) descresc = false , currentDir = 1 ;
if(current < prev) cresc = false, currentDir = -1;
if(prevDir != currentDir)
nrschimbari++;
if(nrschimbari == 1) initDir = currentDir;
prevDir= currentDir;
prev = current;
}
if(cresc || descresc) cout << "DA\n";
else if(initDir == 1 && nrschimbari == 2) cout << "DA\n";
else if(initDir == -1 && nrschimbari == 3 && primul <= ultimul)
cout << "DA\n";
else if(initDir == 1 && nrschimbari == 3 && ultimul <= primul)
cout << "DA\n";
else cout << "NU\n";
return 0;
}