#P5606. 麻烦的聚餐

麻烦的聚餐

题目描述

为了避免餐厅过分拥挤,FJ{FJ}要求奶牛们分3{3}批就餐。每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ{FJ}的设想所有第3{3}批就餐的奶牛排在队尾, 队伍的前端由设定为第1{1}批就餐的奶牛占据,中间的位置就归第2{2}批就餐的奶牛了。

由于奶牛们不理解FJ{FJ}的安排,晚饭前的排队成了一个大麻烦。 第i{i}头奶牛有一张标明她用餐批次Di(1<=Di<=3){D_i(1 <= D_i <= 3)}的卡片。虽然所有N(1<=N<=30,000){N(1 <= N <= 30,000)}头奶牛排成了很整齐的队伍但谁都看得出来,卡片上的号码是完全杂乱无章的。

在若干次混乱的重新排队后,FJ{FJ}找到了一种简单些的方法:奶牛们不动,他沿着队伍从头到尾走一遍把那些他认为排错队的奶牛卡片上的编号改掉,最终得到一个他想要 的每个组中的奶牛都站在一起的队列,例如111222333{111222333}或者333222111{333222111}

哦,你也发现了,FJ{FJ}不反对一条前后颠倒的队列,那样他可以让所有奶牛向后转,然后按正常顺序进入餐厅。 你也晓得,FJ{FJ}是个很懒的人。

他想知道,如果他想达到目的,那么他最少得改多少头奶牛卡片上的编号。所有奶牛在FJ{FJ}改卡片编号的时候,都不会挪位置。

输入格式

1{1}行: 1{1}个整数:N{N }

2..N+1{2..N+1}行: 第i+1{i+1}行是1{1}个整数,为第i{i}头奶牛的用餐批次Di{D_i}

输出格式

1{1}行: 输出1{1}个整数,为FJ{FJ}最少要改几头奶牛卡片上的编号,才能让编号变成他设想中的样子

样例

输入样例

5
1
3
2
1
1

输出样例

1

提示

输入说明:

队列中共有5{5}头奶牛,第1{1}头以及最后2{2}头奶牛被设定为第一批用餐,第2{2}头奶牛的预设是第三批用餐,第3{3}头则为第二批用餐。

输出说明:

如果FJ{FJ}想把当前队列改成一个不下降序列,他至少要改2{2}头奶牛的编号,

一种可行的方案是:把队伍中2{2}头编号不是1{1}的奶牛的编号都改成1{1}

不过,如果FJ{FJ}选择把第1{1}头奶牛的编号改成3{3}就能把奶牛们的队伍改造成一个合法的不上升序列了。