package main

import (
	"fmt"
)

func main() {
	var str1 string
	var str2 string
	for {
		n, _ := fmt.Scan(&str1, &str2)
		if n == 0 {
			break
		} else {
			dp := make([][]int, len(str1)+1)
			for i := 0; i < len(dp); i++ {
				dp[i] = make([]int, len(str2)+1)
			}
			for i := 1; i < len(dp); i++ {
				for j := 1; j < len(dp[i]); j++ {
					if str1[i-1] == str2[j-1] {
						dp[i][j] = dp[i-1][j-1] + 1
					} else {
						dp[i][j] = max(dp[i-1][j], dp[i][j-1])
					}
				}
			}
			i, j := len(str1), len(str2)
			k := dp[i][j]
			res := make([]byte, dp[i][j])
		  	// 利用已有dp 反着找数据
			for k>0 {
				if str1[i-1] == str2[j-1] { 
				  	// str1[i-1] == str2[j-1], 
				   // 原来 dp[i][j] = dp[i-1][j-1] + 1
				  // 反着操作,
					res[k-1] = str1[i-1]
					k--
					i--
					j--
				// dp[i][j] = max(dp[i-1][j], dp[i][j-1])
				// dp[i-1][j]>dp[i][j-1] i--
				// dp[i-1][j]<=dp[i][j-1] j--
				} else if dp[i-1][j] > dp[i][j-1] {
					i--
				} else {
					j--
				}
			}
			if len(res) > 0 {
				fmt.Println(string(res))
			} else {
				fmt.Println(-1)
			}
		}
	}
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}