#include<bits/stdc++.h>
using namespace std;
int a[10] = {2, 3, 3, 3, 5, 6, 6, 7, 7, 8};
int ans;
int main(){
//int a[10] = {2, 3 ,3, 5 ,8 ,6, 3 ,7 ,7, 6};
do{
bool flag1 = false, flag2 = false;//flag1表示之前是否出现递增,flag2表示之前是否出现递减
int cnt = 0;
for(int i = 0; i + 1 < 10; i ++){
if(a[i + 1] > a[i]){
flag1 = true;
if(flag2){
cnt ++;
flag2 = false;
flag1 = false;//flag1也要,因为当出现分割点后每次要从新的起点开始算,不受之前的区间影响了(这点想了很久才想清楚,调了好久才发现这个错误)
}
}
else if(a[i + 1] < a[i]){
flag2 = true;
if(flag1){
cnt ++;
flag1 = false;
flag2 = false;//同理
}
}
else{
}
}
if(cnt <= 2) ans ++;
}while(next_permutation(a, a + 10));
cout << ans;
return 0;
}