def check_value_in_ranges(a, b):
a = sorted(a)
b = sorted(b, reverse=True)
lower, upper = b.pop()
for value in a:
while value >= lower:
if value <= upper:
return True
elif b:
lower, upper = b.pop()
else:
return False
return False
a = [1, 2, 3, 4, 5, 6, 7]
b = [(12,14), (54, 78), (2,3), (9,11)]
print check_value_in_ranges(a, b)
print check_value_in_ranges([4, 5, 6, 7], b)
print check_value_in_ranges([1, 4, 5, 7, 15, 65], b)
print check_value_in_ranges([4, 5, 6, 7], [(1, 3), (2, 4), (8, 10)])
ZGVmIGNoZWNrX3ZhbHVlX2luX3JhbmdlcyhhLCBiKToKICAgIGEgPSBzb3J0ZWQoYSkKICAgIGIgPSBzb3J0ZWQoYiwgcmV2ZXJzZT1UcnVlKQogICAgbG93ZXIsIHVwcGVyID0gYi5wb3AoKQogICAgZm9yIHZhbHVlIGluIGE6CiAgICAgICAgd2hpbGUgdmFsdWUgPj0gbG93ZXI6CiAgICAgICAgICAgIGlmIHZhbHVlIDw9IHVwcGVyOgogICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgICAgZWxpZiBiOgogICAgICAgICAgICAgICAgbG93ZXIsIHVwcGVyID0gYi5wb3AoKQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICByZXR1cm4gRmFsc2UKCmEgPSBbMSwgMiwgMywgNCwgNSwgNiwgN10KYiA9IFsoMTIsMTQpLCAoNTQsIDc4KSwgKDIsMyksICg5LDExKV0KcHJpbnQgY2hlY2tfdmFsdWVfaW5fcmFuZ2VzKGEsIGIpCnByaW50IGNoZWNrX3ZhbHVlX2luX3JhbmdlcyhbNCwgNSwgNiwgN10sIGIpCnByaW50IGNoZWNrX3ZhbHVlX2luX3JhbmdlcyhbMSwgNCwgNSwgNywgMTUsIDY1XSwgYikKcHJpbnQgY2hlY2tfdmFsdWVfaW5fcmFuZ2VzKFs0LCA1LCA2LCA3XSwgWygxLCAzKSwgKDIsIDQpLCAoOCwgMTApXSk=