#include <bits/stdc++.h>
char A[111111], B[111111], c;
unsigned D[111111], Ai, Bi, E[111111];
unsigned F(unsigned n) { return D[n] + Bi - E[n]; }
int main() {
  unsigned i, j, k, l;
  scanf("%s%s", A, B);
  for (; (c = A[Ai]); ++Ai) {
    if (B[Bi] == c) ++Bi;
    D[Ai] = Bi;
  }
  for (; (B[Bi]); ++Bi)
    ;
  for (i = Bi, j = Ai; j--;) {
    E[j] = i;
    if (i && B[i - 1] == A[j]) --i;
  }
  j = -1u;
  k = Bi - i;
  for (i = Ai; i--;)
    if (k <= (l = F(i))) {
      k = l;
      j = i;
    }
  if (j == -1u)
    printf("%s\n", B + Bi - k);
  else if (k == 0)
    printf("-\n");
  else if (k >= Bi)
    printf("%s\n", B);
  else {
    B[D[j]] = '\0';
    printf("%s%s\n", B, B + E[j]);
  }
  return 0;
}
