#include using namespace std; using ll=long long; using pll=pair; using tll=tuple; using ld=long double; const ll INF=(1ll<<60); #define rep(i,n) for (ll i=0;i<(ll)(n);i++) #define all(v) v.begin(),v.end() template void chmin(T &a,T b){ if(a>b){ a=b; } } template void chmax(T &a,T b){ if(a> s; ll n=s.size(); vector> dp(n,vector(n,false)); rep(i,n) dp[i][i]=true; for(ll i=n-1;0<=i;i--){ for(ll j=i;j dp2(n+1,1); dp2[0]=n; rep(i,n){ rep(j,n){ if(dp[i][j]) chmax(dp2[j+1],min(dp2[i],j-i+1)); } } cout << dp2[n] << '\n'; }