← Home
```go
package main

import (
	"fmt"
)

func main() {
	var n int
	if _, err := fmt.Scan(&n); err != nil {
		return
	}

	a := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&a[i])
	}

	for i := 0; i < n-1; i++ {
		if (a[i] == 2 && a[i+1] == 3) || (a[i] == 3 && a[i+1] == 2) {
			fmt.Println("Infinite")
			return
		}
	}

	fmt.Println("Finite")
	ans := 0
	for i := 0; i < n-1; i++ {
		if (a[i] == 1 && a[i+1] == 2) || (a[i] == 2 && a[i+1] == 1) {
			ans += 3
		} else if (a[i] == 1 && a[i+1] == 3) || (a[i] == 3 && a[i+1] == 1) {
			ans += 4
		}
	}

	for i := 0; i < n-2; i++ {
		if a[i] == 3 && a[i+1] == 1 && a[i+2] == 2 {
			ans -= 1
		}
	}

	fmt.Println(ans)
}
```