#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;
}