#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000;
const int B = 33;
const int P = 1e6 + 3;
string s[2];
int ans, Max[2][maxn], dp1[maxn][maxn], dp2[maxn][maxn], dp3[maxn][maxn];
inline void make(const string &x, const string &y, int dp[maxn][maxn]) {
  for (int i = 0; i < x.size(); i++)
    for (int j = 0; j < y.size(); j++)
      if (x[i] == y[j]) dp[i][j] = 1 + (i && j ? dp[i - 1][j - 1] : 0);
}
int main() {
  ios_base ::sync_with_stdio(0);
  for (int i = 0; i < 2; i++) cin >> s[i];
  make(s[0], s[0], dp1);
  make(s[0], s[1], dp2);
  make(s[1], s[1], dp3);
  for (int i = 0; i < s[0].size(); i++)
    for (int j = 0; j < s[0].size(); j++)
      if (i != j) Max[0][i] = max(Max[0][i], dp1[i][j]);
  for (int i = 0; i < s[1].size(); i++)
    for (int j = 0; j < s[1].size(); j++)
      if (i != j) Max[1][i] = max(Max[1][i], dp3[i][j]);
  ans = INT_MAX;
  for (int i = 0; i < s[0].size(); i++)
    for (int j = 0; j < s[1].size(); j++)
      if (dp2[i][j] > Max[0][i] && dp2[i][j] > Max[1][j])
        ans = min(ans, max(Max[0][i], Max[1][j]) + 1);
  cout << (ans == INT_MAX ? -1 : ans) << endl;
}
