def found(x):
    for i in range(N - 1):
        for j in range(i + 1, N):
            if x[i] + x[j] > A:
                return True
    return False

# x = [100, 2, 3, 7, 6, 5, 4]
A = int(input())
x = [int(z) for z in input().split()]
N = len(x)
found = False
for i in range(N - 1):
    for j in range(i + 1, N):
        if x[i] + x[j] > A:
            found = True
            break
    if found:
        break
if found:
    print('YES')
else:
    print('NO')







# N = len(x)
# # mx = x[0]
# mx_ind = 0
# for i in range(N):
#     if x[i] >= x[mx_ind]:
#         # mx = x[i]
#         mx_ind = i
# print(mx_ind)








# count = 0
# for item in x:
#     if item > A:
#         count += 1
# for i in range(len(x)):
#     if x[i] > A:
#         count += 1
# print(count)