#include <bits/stdc++.h>
using
namespace
std;
bool
isPossible(
int
a[],
int
n)
{
if
(n <= 2)
return
true
;
int
flag = 0;
for
(
int
i = 0; i < n - 2; i++) {
if
(!(a[i] > a[i + 1] and a[i + 1] > a[i + 2])) {
flag = 1;
break
;
}
}
if
(flag == 0)
return
true
;
flag = 0;
for
(
int
i = 0; i < n - 2; i++) {
if
(!(a[i] < a[i + 1] and a[i + 1] < a[i + 2])) {
flag = 1;
break
;
}
}
if
(flag == 0)
return
true
;
int
val1 = INT_MAX, mini = -1, val2 = INT_MIN, maxi;
for
(
int
i = 0; i < n; i++) {
if
(a[i] < val1) {
mini = i;
val1 = a[i];
}
if
(a[i] > val2) {
maxi = i;
val2 = a[i];
}
}
flag = 1;
for
(
int
i = 0; i < maxi; i++) {
if
(a[i] > a[i + 1]) {
flag = 0;
break
;
}
}
if
(flag == 1 and maxi + 1 == mini) {
flag = 1;
for
(
int
i = mini; i < n - 1; i++) {
if
(a[i] > a[i + 1]) {
flag = 0;
break
;
}
}
if
(flag == 1)
return
true
;
}
flag = 1;
for
(
int
i = 0; i < mini; i++) {
if
(a[i] < a[i + 1]) {
flag = 0;
break
;
}
}
if
(flag == 1 and maxi - 1 == mini) {
flag = 1;
for
(
int
i = maxi; i < n - 1; i++) {
if
(a[i] < a[i + 1]) {
flag = 0;
break
;
}
}
if
(flag == 1)
return
true
;
}
return
false
;
}
int
main()
{
int
a[] = { 4, 5, 6, 2, 3 };
int
n =
sizeof
(a) /
sizeof
(a[0]);
if
(isPossible(a, n))
cout <<
"Yes"
;
else
cout <<
"No"
;
return
0;
}