#include //#include //using namespace atcoder; //using mint = modint998244353; using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; using ll= long long; using ull=unsigned long long; using ldo =long double; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (bll sum1(T &a){ll ans = 0;for(ll i=0;ill sum2(T &a,ll start){ll ans = 0;for(ll i=start;ill sum3(T &a,ll start,ll en){ll ans = 0;for(ll i=start;ill sum4(T &a,ll start,ll en,ll tolerance){ll ans = 0;for(ll i=start;i& a){rep(i,a.size(),0){print(a[i]);if(i!=a.size()-1)print(' ');else print();}} void print(vector& a){rep(i,a.size(),0){print(a[i]);if(i!=a.size()-1)print(' ');else print();}} void println(){ putchar('\n'); } void println(bool a){ printf("%d\n", a); } void println(int a){ printf("%d\n", a); } void println(unsigned a){ printf("%u\n", a); } void println(long long a){ printf("%lld\n", a); } void println(unsigned long long a){ printf("%llu\n", a); } void println(char a){ printf("%c\n", a); } void println(char a[]){ printf("%s\n", a); } void println(float a){ printf("%.15f\n", a); } void println(double a){ printf("%.15f\n", a); } void println(long double a){ printf("%.15Lf\n", a); } void println(const string& a){ rep(i,a.size()) print(a[i]); print();} void println(vector& a){rep(i,a.size(),0){print(a[i]);print();}} void println(vector& a){rep(i,a.size(),0){print(a[i]);print();}} int main() { string S; cin>>S; vector z; priority_queue x,y; ll ans=0; rep(i,S.size()){ if(S[i]=='<'){ z.push_back(i); } if(S[i]=='>'){ if(z.empty()){ continue; } if(z.back()==i-1){ z.clear(); continue; } x.push(-z.back()); y.push(-i); z.pop_back(); } } ll tf=0; rep(i,S.size()){ if(!x.empty()){ if(-x.top()==i){ x.pop(); tf--; } } if(0<=tf) ans++; if(!y.empty()){ if(-y.top()==i){ y.pop(); tf++; } } } println(ans); }