#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef MYDEBUG #define err(...) #define errs(...) #define NO_CP(a) #define MY_ASSERT(a) #endif using namespace std; void Calc(); #define PI 3.14159265358979323846 #define ALL(a) (a).begin(),(a).end() #define RALL(a) (a).rbegin(),(a).rend() typedef long long ll; typedef unsigned long long ull; int main() { cin.tie(0); ios::sync_with_stdio(false); cout.setf(ios::fixed, ios::floatfield); cout.precision(15); Calc(); cout.flush(); return 0; } struct Scanner { NO_CP(Scanner); templatestatic A Next() { A a; cin >> a; MY_ASSERT(cin); return a; } static string Line() { string s; getline(cin, s); MY_ASSERT(cin); return s; } templatestatic vector Array(int n) { vector a(n); for (A& i : a) i = Next(); return a; } static int Int() { return Next(); } template Scanner& operator>>(A &a) { a = Next(); return *this; } template operator A() { return Next(); } }; template<> bool Scanner::Next() { return !!cin; } namespace out { template void Out(A b, A e, const char *between = " ") { if (b != e)while (cout << *b, ++b != e) cout << between; } templatevoid Outs(const T &t) { cout << t; } templatevoid Outs(const T& t, const Args&... args) { cout << t << ' '; Outs(args...); } } /*---------------------------------------------------------------------*/ void Calc() { Scanner cin; string s1, p1, s2, p2; bool is_first_win = true; cin >> s1 >> p1; cin.Next(); cin >> s2 >> p2; if (p1.size() == p2.size()) { if (p1 == p2) { cout << -1 << endl; return; } for (int i = 0; i < p1.size(); i++) { if (p1[i] == p2[i])continue; if (p1[i] < p2[i])is_first_win = false; break; } } else if (p1.size() < p2.size()) { is_first_win = false; } if (is_first_win)cout << s1 << endl; else cout << s2 << endl; }