#include using namespace std; using Int = long long; Int lcs(string X,string Y){ const Int N=max(X.size(),Y.size())+1; vector > c(N,vector(N,0)); Int m = X.size(); Int n = Y.size(); Int maxl = 0; X = ' ' + X; Y = ' ' + Y; for(Int i=1;i<=m;i++){ for(Int j=1;j<=n;j++){ if(X[i]==Y[j]) c[i][j]=c[i-1][j-1]+1; else c[i][j]=max(c[i-1][j],c[i][j-1]); maxl=max(maxl,c[i][j]); } } return maxl; } template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a>s; Int n=s.size(); Int ans=n+1; for(Int i=0;in) ans=-1; cout<