#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) using namespace atcoder; using namespace std; typedef long long ll; template ostream &operator<<(ostream &os, const vector &v) { int n = v.size(); rep(i, 0, n) { os << v[i] << " \n"[i == n - 1]; } return os; } void solve() { int n; string s; cin >> n >> s; vector a(n); int i = 0; for (auto c : s) { if (c == '<') i--; if (c == '>') i++; if (c == '+') a[i]++; if (c == '-') a[i]--; if (i < 0 || i >= n) { cout << "error\n"; return; } } cout << a; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); solve(); }