#include <bits/stdc++.h>
using namespace std;
long long int powerMod(long long int a, long long int b, long long int m) {
  long long int result = 1;
  while (b > 0) {
    if (b & 1) result = (result * a) % m;
    a = (a * a) % m;
    b /= 2;
  }
  return result;
}
long long int power(long long int a, long long int b) {
  long long int result = 1;
  while (b > 0) {
    if (b & 1) result *= a;
    a *= a;
    b /= 2;
  }
  return result;
}
long long int gcd(long long int a, long long int b) {
  return b ? gcd(b, a % b) : a;
}
int main() {
  cin.tie(0)->sync_with_stdio(0);
  int t;
  cin >> t;
  while (t--) {
    long long int n;
    cin >> n;
    vector<long long int> arr;
    bool ok = true;
    long long int prev = -1;
    for (int i = 0; i < n; ++i) {
      long long int x;
      cin >> x;
      if (i == 0)
        prev = x;
      else {
        if (x == 0 && prev == 0) ok = false;
        prev = x;
      }
      arr.push_back(x);
    }
    long long int ans = 1;
    if (ok) {
      for (int i = 0; i < n; ++i) {
        if (i == 0) {
          if (arr[i]) ans += 1;
        } else {
          if (arr[i]) {
            if (arr[i - 1])
              ans += 5;
            else
              ans += 1;
          }
        }
      }
      cout << ans << "\n";
    } else {
      cout << -1 << "\n";
    }
  }
}

### Prompt

Create a solution in cpp for the following problem:

Petya has got an interesting flower. Petya is a busy person, so he sometimes forgets to water it. You are given n days from Petya's live and you have to determine what happened with his flower in the end.

The flower grows as follows: 

  * If the flower isn't watered for two days in a row, it dies. 
  * If the flower is watered in the i-th day, it grows by 1 centimeter. 
  * If the flower is watered in the i-th and in the (i-1)-th day (i > 1), then it grows by 5 centimeters instead of 1. 
  * If the flower is not watered in the i-th day, it does not grow. 



At the beginning of the 1-st day the flower is 1 centimeter tall. What is its height after n days?

Input

Each test contains multiple test cases. The first line contains the number of test cases t (1 ≤ t ≤ 100). Description of the test cases follows.

The first line of each test case contains the only integer n (1 ≤ n ≤ 100).

The second line of each test case contains n integers a_1, a_2, ..., a_n (a_i = 0 or a_i = 1). If a_i = 1, the flower is watered in the i-th day, otherwise it is not watered.

Output

For each test case print a single integer k — the flower's height after n days, or -1, if the flower dies.

Example

Input


4
3
1 0 1
3
0 1 1
4
1 0 0 1
1
0


Output


3
7
-1
1

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
long long int powerMod(long long int a, long long int b, long long int m) {
  long long int result = 1;
  while (b > 0) {
    if (b & 1) result = (result * a) % m;
    a = (a * a) % m;
    b /= 2;
  }
  return result;
}
long long int power(long long int a, long long int b) {
  long long int result = 1;
  while (b > 0) {
    if (b & 1) result *= a;
    a *= a;
    b /= 2;
  }
  return result;
}
long long int gcd(long long int a, long long int b) {
  return b ? gcd(b, a % b) : a;
}
int main() {
  cin.tie(0)->sync_with_stdio(0);
  int t;
  cin >> t;
  while (t--) {
    long long int n;
    cin >> n;
    vector<long long int> arr;
    bool ok = true;
    long long int prev = -1;
    for (int i = 0; i < n; ++i) {
      long long int x;
      cin >> x;
      if (i == 0)
        prev = x;
      else {
        if (x == 0 && prev == 0) ok = false;
        prev = x;
      }
      arr.push_back(x);
    }
    long long int ans = 1;
    if (ok) {
      for (int i = 0; i < n; ++i) {
        if (i == 0) {
          if (arr[i]) ans += 1;
        } else {
          if (arr[i]) {
            if (arr[i - 1])
              ans += 5;
            else
              ans += 1;
          }
        }
      }
      cout << ans << "\n";
    } else {
      cout << -1 << "\n";
    }
  }
}

```