#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}#include<iostream>
#include<string>
using namespace std;
int dp[1001][1001], n, m;
string a, b;
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
freopen("p1513.in", "r", stdin);
freopen("p1513.out", "w", stdout);
getline(cin, a);
getline(cin, b);
n = a.size();
m = b.size();
for(int i = n;i >= 1;i --) {
for(int j = m;j >= 1;j --) {
if(a[i] == b[j]) {
dp[i][j] = dp[i + 1][j + 1] + 1;
}
}
}
int max = dp[1][1];
int st = 1;
for(int i = 1;i <= n;i ++) {
for(int j = 1;j <= m;j ++) {
if(dp[i][j] > max) {
st = i;
max = dp[i][j];
}
}
}
for(int i = 0;i < max;i ++) {
cout << a[st + i];
}
fclose(stdin);
fclose(stdout);
return 0;
}
( )