d9d9e5c74db87ac8cff8358dc26e72a6e5cd891aea6394eb7bd436cb91f0c61f
// https://szkopul.edu.pl/problemset/problem/3GXkVUEnWNZRn2C2VpX2uKmq/site/?key=statement
#include <bits/stdc++.h>
// #define GARY_DBG
#define GARY_LIB
#define int int64_t
constexpr int sizik = 1000 * 1001;
#define ar std::array
typedef std::vector<std::vector<int>> _kra;
constexpr int INF = 2ll * INT32_MAX;
int n;
int v[sizik];
ar<int, sizik> pref0, pref1, pref2;
ar<int, sizik> pref_minus1;
ar<int, sizik> suff_plus1;
inline void print_ans(int ans) {
if (ans >= INF) {
std::cout << "BRAK\n";
} else {
std::cout << ans << '\n';
}
}
inline bool check(int start_idx, int s) {
return (pref0[s] - pref0[start_idx - 1]) == (s - start_idx + 1);
}
inline int find_idx_last_zero(int start_idx) {
assert(v[start_idx] == 0);
assert(1 <= start_idx && start_idx <= n);
int l = start_idx, r = n;
while (l < r) {
int s = (l + r + 1) / 2;
if (check(start_idx, s)) {
l = s;
} else {
r = s - 1;
}
}
return l;
}
void solve() {
std::cin >> n;
for (int i = 1; i <= n; i++) {
std::cin >> v[i];
}
if (std::is_sorted(v + 1, v + n + 1)) {
std::cout << "0\n";
return;
}
for (int i = 1; i <= n; i++) {
pref0[i] = pref0[i - 1] + (v[i] == 0);
pref1[i] = pref1[i - 1] + (v[i] == 1);
pref2[i] = pref2[i - 1] + (v[i] == -1);
}
if (v[1] != -1) {
pref_minus1[1] = INF;
} else {
pref_minus1[1] = 0;
}
for (int i = 2; i <= n; i++) {
pref_minus1[i] = pref_minus1[i - 1];
if (v[i] == 0) {
pref_minus1[i] += 1;
} else if (v[i] == 1) {
pref_minus1[i] += 2;
}
}
for (int i = n; i >= 1; i--) {
if (((pref1[n] - pref1[i - 1]) == 0) || (v[i] != 1)) {
suff_plus1[i] = INF;
} else {
suff_plus1[i] = pref0[n] - pref0[i - 1] + 2 * (pref2[n] - pref2[i - 1]);
}
}
int ans = INF;
if (v[1] == 1) {
ans = suff_plus1[1];
} else if (v[1] == 0) {
for (int i = 2; i <= n; i++) {
if (v[i] != 0) {
ans = suff_plus1[i];
break;
}
}
} else {
for (int i = 1; i <= n; i++) {
int wyn = pref_minus1[i];
int wyn1 = wyn + suff_plus1[i + 1];
ans = std::min(ans, wyn1);
if (i < n) {
if (v[i + 1] == -1) {
} else if (v[i + 1] == 0) {
int idx = find_idx_last_zero(i + 1);
int wyn2 = wyn + suff_plus1[idx + 1];
ans = std::min(ans, wyn2);
} else if (v[i + 1] == 1) {
if (i < n - 1) {
if (v[i + 2] == 0) {
int idx = find_idx_last_zero(i + 2);
int wyn2 = 1 + wyn + suff_plus1[idx + 1];
ans = std::min(ans, wyn2);
}
}
}
}
}
}
print_ans(ans);
}
int32_t main() {
#ifndef GARY_DBG
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
#endif
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}