#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep1(i, n) for (int i = 1; i <= (int)(n); i++) #define all(a) a.begin(), a.end() using namespace std; template inline bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } template inline bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } using ll = long long; constexpr int INF = numeric_limits::max() / 2; constexpr ll LINF = numeric_limits::max() / 2; void solve() { // ここからスタート int N; cin >> N; int ptr = 1; string S; cin >> S; vector A(N + 1, 0); bool error = false; for (auto c : S) { if (c == '+') A[ptr]++; else if (c == '-') A[ptr]--; else if (c == '<') ptr--; else if (c == '>') ptr++; if (ptr <= 0 || ptr > N) { error = true; break; } } if (error) { println("error"); } else { rep1(i, N) print("{} ", A[i]); println(); } } int main() { cin.tie(0)->sync_with_stdio(false); solve(); return 0; }