#define _CRT_SECURE_NO_WARNINGS #define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING #include using namespace std; int num[105]; vector ac[105]; int dfs(int x) { for (int i = ac[x].size() - 1; i >= 0; i--) if (num[ac[x][i]]) { num[ac[x][i]]--; int res = dfs(ac[x][i]); num[ac[x][i]]++; if (res == -1) return 1; } return -1; } int main() { for (;;) { int x; scanf("%d", &x); num[x]++; if (getchar() == '\n') break; } vector can; for (;;) { int x; if (scanf("%d", &x) == -1)break; can.push_back(x); if (getchar() == '\n') break; } sort(can.begin(), can.end()); for (int i = 1; i <= 100; i++) if (num[i]) { num[i]--; for (int j = 1; j <= 100; j++) if (num[j] && (i % j == 0 || j % i == 0)) ac[i].push_back(j); num[i]++; } for (int i = 0; i < can.size(); i++) { num[can[i]]--; if (dfs(can[i]) == -1)return printf("%d", can[i]), 0; num[can[i]]++; } puts("-1"); return 0; }