#include #include using namespace atcoder; using namespace std; #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) #define rep2(i, k, n) for (ll i = (ll)(k); i < (ll)(n); i++) #define repM(i, k, n) for (ll i = (ll)(k); i > (ll)(n); i--) #define all(v) v.begin(), v.end() using ll = long long; ll mod = 998244353; int main() { string S, T = ""; ll start = 0, eq = 0; cin >> S; stack A, B; A.push(0); B.push(0); rep(i, S.size()){ T.push_back(S[i]); if(T[T.size()-1] == '<'){ start = T.size(); eq = 0; A.push(T.size()); } else if(T[T.size()-1] == '='){ if(start > 0){ eq++; } } else { if(start > 0 && eq > 0){ T = T.substr(0, start-1); A.pop(); if(A.top() > B.top()){ start = A.top(); eq = T.size() - start; } else { start = 0; eq = 0; } } else { start = 0; B.push(T.size()); } } } cout << T.size(); }