#include <iostream>
using namespace std;

inline int maxi(int m, int n) {
    return (m > n) ? m : n;
}

int a, b, c, x, y;

int cartaMayor(int r) {
	do
		r++;
	while (r == a || r == b || r == c || r == x || r == y);
	return r;
}

int main() {
	while (cin >> a >> b >> c >> x >> y && a != 0)
	{
		// calculo las diferentes combinaciones de jugadas
		//     si pierdo las 2 primeras manos pongo -1
		//     si gano las 2 primeras manos tomo un 0 como base para buscar una mayor
		//     si no, tomo la 3ra carta como base para buscar una mayor
		int r1 = (x < a && y < b) ? -1 : ((x > a && y > b) ? 0 : c);
		int r2 = (x < a && y < c) ? -1 : ((x > a && y > c) ? 0 : b);
		int r3 = (x < b && y < a) ? -1 : ((x > b && y > a) ? 0 : c);
		int r4 = (x < b && y < c) ? -1 : ((x > b && y > c) ? 0 : a);
		int r5 = (x < c && y < a) ? -1 : ((x > c && y > a) ? 0 : b);
		int r6 = (x < c && y < b) ? -1 : ((x > c && y > b) ? 0 : a);

		// si alguna combinación es imposible de ganar, imprimo -1
		if (r1 == -1 || r2 == -1 || r3 == -1 || r4 == -1 || r5 == -1 || r6 == -1)
		{
			cout << -1 << endl;
			continue;
		}

		// para cada caso busco una carta ganadora
		r1 = cartaMayor(r1);
		r2 = cartaMayor(r2);
		r3 = cartaMayor(r3);
		r4 = cartaMayor(r4);
		r5 = cartaMayor(r5);
		r6 = cartaMayor(r6);

		// si alguna combinación es imposible de ganar, imprimo -1
		if (r1 > 52 || r2 > 52 || r3 > 52 || r4 > 52 || r5 > 52 || r6 > 52)
		{
			cout << -1 << endl;
			continue;
		}

		cout << maxi(r1, maxi(r2, maxi(r3, maxi(r4, maxi(r5, r6))))) << endl;
	}
	return 0;
}

