#include"../template.h"// Longest common substring with tracestructTrace{inti,j;charc;Trace(int_i=0,int_j=0,char_c='\0'):i(_i),j(_j),c(_c){}};voidsolve(){strings1,s2;cin>>s1>>s2;s1="#"+s1;s2="#"+s2;intn=s1.size(),m=s2.size();intdp[n][m];Tracepar[n][m]={};memset(dp,0,sizeofdp);for(inti=1;i<n;i++){for(intj=1;j<m;j++){if(s1[i]==s2[j]){dp[i][j]=dp[i-1][j-1]+1;par[i][j]=Trace(i-1,j-1,s1[i]);}else{if(dp[i][j-1]>=dp[i-1][j]){dp[i][j]=dp[i][j-1];par[i][j]=Trace(i,j-1);}else{dp[i][j]=dp[i-1][j];par[i][j]=Trace(i-1,j);}}}}Tracecur=par[n-1][m-1];stringans="";while(1){if(cur.c!='\0')ans+=cur.c;if(!cur.i&&!cur.j)break;cur=par[cur.i][cur.j];}reverse(all(ans));cout<<ans;}
#line 2 "template.h"
#include<bits/stdc++.h>usingnamespacestd;#define ll long long
#define MOD (ll)(1e9+7)
#define all(x) (x).begin(),(x).end()
#define unique(x) x.erase(unique(all(x)), x.end())
#define INF32 ((1ull<<31)-1)
#define INF64 ((1ull<<63)-1)
#define inf (ll)1e18
#define vi vector<int>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define fi first
#define se second
constintmod=998244353;voidsolve();intmain(){ios_base::sync_with_stdio(false);cin.tie(NULL);// cin.exceptions(cin.failbit);// int t; cin >> t;// while(t--)solve();cerr<<"\nTime run: "<<1000*clock()/CLOCKS_PER_SEC<<"ms"<<'\n';return0;}#line 2 "Dp/LCS.h"
// Longest common substring with tracestructTrace{inti,j;charc;Trace(int_i=0,int_j=0,char_c='\0'):i(_i),j(_j),c(_c){}};voidsolve(){strings1,s2;cin>>s1>>s2;s1="#"+s1;s2="#"+s2;intn=s1.size(),m=s2.size();intdp[n][m];Tracepar[n][m]={};memset(dp,0,sizeofdp);for(inti=1;i<n;i++){for(intj=1;j<m;j++){if(s1[i]==s2[j]){dp[i][j]=dp[i-1][j-1]+1;par[i][j]=Trace(i-1,j-1,s1[i]);}else{if(dp[i][j-1]>=dp[i-1][j]){dp[i][j]=dp[i][j-1];par[i][j]=Trace(i,j-1);}else{dp[i][j]=dp[i-1][j];par[i][j]=Trace(i-1,j);}}}}Tracecur=par[n-1][m-1];stringans="";while(1){if(cur.c!='\0')ans+=cur.c;if(!cur.i&&!cur.j)break;cur=par[cur.i][cur.j];}reverse(all(ans));cout<<ans;}