#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,n) for(int (i)=0; (i)<(n) ;++(i)) #define REPN(i,a,n) FOR((i),(a),(a)+(n)) #define FOR(i,a,b) for(int (i)=(a); (i)<(b) ;++(i)) #define PB push_back #define MP make_pair #define SE second #define FI first #define DBG(a) cerr<<(a)< PLL; typedef vector VLL; typedef pairPI; typedef vector VI; const LL LINF=334ll<<53; const int INF=15<<26; const LL MOD=1E9+7; #define _M 100010 string a="()*^^",s; int calc(){ int sum[_M][2]={},dp[_M][4]={};//(,),~,* FOR(i,1,s.size()+1){ REP(j,2){ sum[i][j]=sum[i-1][j]; if(s[i-1]==a[j])sum[i][j]++; } //dump(sum[i][0])dump(sum[i][1]) dp[i][0]=i; for(int j=3;j>0;--j){ if(s[i-1]==a[j+1]){ dp[i][j]=dp[i-1][j-1]; }else{ dp[i][j]=dp[i-1][j]; } //cout << i << j << dp[i][j]<>s; int hidari=calc(); swap(a[0],a[1]); reverse(ALL(s)); int migi=calc(); cout << migi<<' ' << hidari <