```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n int
fmt.Fscan(reader, &n)
ans := 0
speedStack := make([]int, 0)
overtakeCount := 0
for i := 0; i < n; i++ {
var t int
fmt.Fscan(reader, &t)
switch t {
case 1:
var s int
fmt.Fscan(reader, &s)
for len(speedStack) > 0 && speedStack[len(speedStack)-1] < s {
speedStack = speedStack[:len(speedStack)-1]
ans++
}
case 2:
if overtakeCount > 0 {
ans += overtakeCount
overtakeCount = 0
}
case 3:
var s int
fmt.Fscan(reader, &s)
speedStack = append(speedStack, s)
case 4:
overtakeCount = 0
case 5:
speedStack = speedStack[:0]
case 6:
overtakeCount++
}
}
fmt.Fprintln(writer, ans)
}
```