import java.util.*;
public class Solution {
/**
* longest common subsequence
* @param s1 string字符串 the string
* @param s2 string字符串 the string
* @return string字符串
*/
public String LCS (String s1, String s2) {
// write code here
int n=s1.length();int m=s2.length();
int [][]dp=new int[n+1][m+1];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(s1.charAt(i-1)==s2.charAt(j-1)){
dp[i][j]=dp[i-1][j-1]+1;
}else{
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);
}
}
}
if(dp[n][m]==0)return "-1";
StringBuilder sb=new StringBuilder();
while(n>0&&m>0){
if(s1.charAt(n-1)==s2.charAt(m-1)){
sb.append(s1.charAt(n-1));
n--;m--;
}else{
if(dp[n-1][m]>dp[n][m-1]){
n--;
}else{
m--;
}
}
}
return sb.reverse().toString();
}
}