import java.util.*; import java.io.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); if (n <= 1) { System.out.println("-1"); return; } List<Integer> runesList = new ArrayList<>(n); st = new StringTokenizer(br.readLine()); while (st.hasMoreTokens()) { runesList.add(Integer.parseInt(st.nextToken())); } int minCrystals = 0; for (int i = 0; i < runesList.size(); i++) { if (runesList.get(i) == 1) { if (i == 0) { if (runesList.get(i + 1) == 0) { runesList.set(i + 1, 2); minCrystals++; } else if (runesList.get(i + 1) == 1) { System.out.println("-1"); return; } } else if (i == runesList.size() - 1) { if (runesList.get(i - 1) == 0) { runesList.set(i - 1, 2); minCrystals++; } else if (runesList.get(i - 1) == 1) { System.out.println("-1"); return; } } else { if (runesList.get(i - 1) == 2) { continue; } else if (runesList.get(i - 1) == 1) { if (runesList.get(i + 1) == 1) { System.out.println("-1"); return; } else if (runesList.get(i + 1) == 0) { runesList.set(i + 1, 2); minCrystals++; } } else if (runesList.get(i - 1) == 0) { if (runesList.get(i + 1) == 1) { runesList.set(i - 1, 2); minCrystals++; } else if (runesList.get(i + 1) == 0) { runesList.set(i + 1, 2); minCrystals++; } } } } } System.out.println(minCrystals); } }