package main

import (
    "fmt"
)

func main() {
    var str1 string
    var str2 string
    for {
        n, _ := fmt.Scan(&str1, &str2)
        if n == 0 {
            break
        } else {
            str := process(str1, str2)
            if len(str) > 0 {
                fmt.Println(str)
            } else {
                fmt.Println(-1)
            }
        }
    }
}
// o(1)复杂度带分析
// 空间复杂度为 o(n) 时间复杂度为 o(n*m)
func process(str1 string, str2 string) string {
    dp := make([]int, len(str2)+1)
    maxi, maxl := 0, 0
    for i:=1; i<len(str1)+1; i++ {
        for j:=len(dp)-1; j>=1; j-- {
            if str1[i-1] == str2[j-1] {
                dp[j] = dp[j-1]+1
                if dp[j] > maxl {
                    maxl = dp[j]
                    maxi = i
                } 
            } else {
                dp[j] = 0 // 需要复原为0
            }
        }
    }
    if maxl > 0 {
        return str1[maxi-maxl:maxi]
    } 
    return ""
}
// 空间复杂度为 o(n*m) 时间复杂度为 o(n*m)
// func process(str1 string, str2 string) string {
//     dp := make([][]int, len(str1)+1)
//     for i:=0; i<len(dp); i++ {
//         dp[i] = make([]int, len(str2)+1)
//     }
//     maxi, maxl := 0, 0
//     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
//                 if dp[i][j] > maxl {
//                     maxl = dp[i][j]
//                     maxi = i
//                 }
//             }
//         }
//     }
//     if maxl > 0 {
//         return str1[maxi-maxl:maxi]
//     } 
//     return ""
// }