force = [ [1,2,2,2,2], [2,1,3,4,3], [2,3,1,3,4], [2,4,3,1,3], [2,3,4,3,1] ] seq = list(map(int, input().split())) n = len(seq) inf = float("inf") dp = [[[inf]*5 for _ in range(5)] for _ in range(2)] for i in range(5) : for j in range(5) : dp[1][i][j] = 0 cur_idx = 0 nxt_idx = 1 for step in range(n-1,-1, -1) : target = seq[step] if target == 0 : continue for l in range(5) : for r in range(5) : moveLeft = dp[nxt_idx][target][r] + force[l][target] moveRight = dp[nxt_idx][l][target] + force[r][target] dp[cur_idx][l][r] = min(moveLeft, moveRight) cur_idx = 1 if cur_idx == 0 else 0 nxt_idx = 1 if cur_idx == 0 else 0 print(dp[nxt_idx][0][0])