Harryxun/stf_run huggingface dataset:
A,B,C = input().split()
K = int(input())
first = "N"
second = "N"
f = 1
s = 1
for i in range(1,K):
    if int(A) < int(B)*f:
        first = "Y"
        nokori = i
        break
    else:
        f *= 2
        print(f)
if int(A) < int(B)*f:
        first = "Y"
        nokori = i

if first == "Y":
    for o in range(1,nokori):
        if int(B) < int(C)*(s**2):
            second = "Y"
            break
        else:
            s *= 2
    if int(B) < int(C)*(s**2):
            second = "Y"
        
if first == "Y" and second == "Y":
    print("Yes")
else:
    print("No")

### FIXED CODE ###

A,B,C = input().split()
K = int(input())
first = "N"
second = "N"
f = 1
s = 1
nokori = K
for i in range(1,K):
    if int(A) < int(B)*f:
        first = "Y"
        break
    else:
        f *= 2
        nokori -= 1
if int(A) < int(B)*f:
        first = "Y"
if first == "Y":
    for o in range(1,nokori+1):
        if int(B)*f < int(C)*s:
            second = "Y"
            break
        else:
            s *= 2
    if int(B)*f < int(C)*s:
            second = "Y"
        
if first == "Y" and second == "Y":
    print("Yes")
else:
    print("No")
#!python3

import sys
iim = lambda: map(int, sys.stdin.readline().rstrip().split())
from heapq import heappush, heappushpop


def resolve():
    rl = sys.stdin.readline
    T = int(rl())
    if T == 3: raise 1

    ans = [0] * T
    for t in range(T):
        N = int(rl())

        val = 0
        a1 = [[] for i in range(N)]
        a2 = [[] for i in range(N)]

        for _ in range(N):
            i, v1, v2 = map(int, rl().split())
            i -= 1
            diff = v1 - v2
            if diff == 0 or i == N-1:
                val += v1
            elif diff > 0:
                a1[i].append(diff)
                val += v2
            else:
                i = N-1-i-1
                a2[i].append(-diff)
                val += v1

        for ax in (a1, a2):
            dq = []
            for i, aa in enumerate(ax):
                if not aa: continue
                for diff in aa:
                    ld = len(dq)
                    if ld <= i:
                        heappush(dq, diff)
                        val += diff
                    else:
                        df = heappushpop(dq, diff)
                        val += diff - df

        ans[t] = val


    print(*ans, sep="\n")



if __name__ == "__main__":
    resolve()


### FIXED CODE ###

#!python3

import sys
iim = lambda: map(int, sys.stdin.readline().rstrip().split())
sys.setrecursionlimit(1000000000)

def resolve():
    it = map(int, sys.stdin.read().split())

    T = next(it)
    ans = []
    for i in range(T):
        N = next(it)

        val = 0; a1 = []; a2 = []
        for i, v1, v2 in ((next(it), next(it), next(it)) for i in range(N)):
            diff = v1 - v2
            a, v, diff = (a1, v2, diff) if diff >= 0 else (a2, v1, -diff)
            a.append((diff, i))
            val += v
        a1.sort(reverse=True); a2.sort(reverse=True)

        ls = len(a1)
        vis = [None]*(N+1)
        def root(x):
            if vis[x] == None: return x

            vis[x] = root(vis[x])
            return vis[x]
        def root(x):
            a = []
            while True:
                y = vis[x]
                if y == None:
                    break
                a.append(x)
                x = y
            for i in a:
                vis[i] = x
            return x

        for diff, i in a1:
            j = min(i, ls) - 1
            k = root(j)
            #print(diff, i, j, k,  vis)
            if k < 0: continue
            val += diff
            vis[k] = k - 1


        for diff, i in a2:
            j, v2 = max(i, ls), [[-1]]
            k = root(j)
            #print(diff, i, j, k,  vis)
            if k >= N: continue
            val += diff
            vis[k] = k + 1

        ans.append(val)

    print(*ans, sep="\n")



if __name__ == "__main__":
    resolve()
N,M = map(int, input().split())
a = [0]*M
for i in range(M):
    a[i] = int(input())

fib_memo = {}
def fib(n):
    if n < 3: return 1
    if n not in fib_memo:
        fib_memo[n] = fib(n-1) + fib(n-2)
    return fib_memo[n]

now = 0
count = 1
for i in a:
    count *= fib(i-now)
    if now != 0 and now+1 == i:
        print(0)
        quit()
    now = i+1

count *= fib(N-now+1)

mod = 7+10**9
print(count%mod)

### FIXED CODE ###

# 再帰上限あげとく
import sys
sys.setrecursionlimit(10**6)

# 値入力
mod = 7+10**9
N,M = map(int, input().split())
a = [0]*M
for i in range(M):
    a[i] = int(input())

# メモ化フィボナッチ
# 参考:http://python-remrin.hatenadiary.jp/entry/2017/05/19/153228
fib_memo = {}
def fib(n):
    if n < 3: return 1
    if n not in fib_memo:
        fib_memo[n] = fib(n-1) + fib(n-2)
    return fib_memo[n]

now = 0 # 今いる場所と考える
count = 1
for i in a:
    count *= fib(i-now)
    count = count%mod
    if now == i:
        print(0)
        quit()
    now = i+1 # 穴を超えた次の段に移動する

# 最上段までを計算
count *= fib(N-now+1)
print(count%mod)
#!/usr/bin/env python3
import sys
from pprint import pprint

MOD = 998244353  # type: int

def solve(N: int, a: "List[int]"):
    s = sum(a)
    dp = [[[0] * 2 for _ in range(s + 1)] for _ in range(N + 1)] # dp[idx][sum][]
    dp[0][0][0] = 1
    dp[0][0][1] = 1
    for i in range(N):
        for j in range(s + 1 - a[i]):
            dp[i + 1][j + a[i]][0] += dp[i][j][0]
            dp[i + 1][j + a[i]][1] += dp[i][j][1]
            dp[i + 1][j][0] += dp[i][j][0]
            dp[i + 1][j][1] += dp[i][j][1] * 2

    tmp = 0
    border = (s + 1) // 2
    uniq = 0
    #pprint(dp)
    for j in range(border, s + 1):
        tmp += dp[N][j][1]
        uniq += dp[N][j][0]
    #print(tmp, uniq)
    tmp -= uniq * 2
    tmp *= 3

    ret = (3 ** N) % MOD
    col_2 = (2 ** N) % MOD
    ret -= 3 + (col_2 - 2) * 3 + 3
    #print(ret)
    #for i in range(N):
    #    ret *= 3
    #    ret %= MOD
    #    col_2 *= 2
    #    col_2 %= MOD
    ret -= tmp
    print(ret % MOD)
    return


def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  # type: int
    a = [ int(next(tokens)) for _ in range(N) ]  # type: "List[int]"
    solve(N, a)

if __name__ == '__main__':
    main()


### FIXED CODE ###

#!/usr/bin/env python3
import sys


def solve(N: int, S: str):
    white = []
    white.append(0)
    cur = 0
    for c in S:
        if c == '.':
            cur += 1
        white.append(cur)
    black = []
    black.append(0)
    cur = 0
    for c in S[::-1]:
        if c == '#':
            cur += 1
        black.append(cur)
    black.reverse()
    #print(white)
    #print(black)
    ret = float('inf')
    for i in range(N + 1):
        ret = min(ret, N - (white[i] + black[i]))
    print(ret)
    return


def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word
    tokens = iterate_tokens()
    N = int(next(tokens))  # type: int
    S = next(tokens)  # type: str
    solve(N, S)

if __name__ == '__main__':
    main()
x,t = map(int,input().splist())
print(max(0,x-t))

### FIXED CODE ###

x,t = map(int,input().split())
print(max(0,x-t))
def resolve():
    h,w,m = map(int, input().split())
    mine = []
    mineh = [0]*h
    minew = [0]*w
    for i in range(m):
        a,b = map(int, input().split())
        a -= 1
        b -= 1
        mine.append((a,b))
        mineh[a] += 1
        minew[b] += 1
    mine = set(mine)
    maxh = max(mineh)
    hnum = []
    maxw = max(minew)
    wnum = []
    for i in range(h):
        if mineh[i] == maxh:
            hnum.append(i)
        if minew[i] == maxw:
            wnum.append(i)
    for i in hnum:
        for j in wnum:
            if [i,j] in mine:
                continue
            else:
                print(maxw+maxh)
                exit()
    print(maxw+maxh-1)
resolve()

### FIXED CODE ###

def resolve():
    h,w,m = map(int, input().split())
    mine = []
    mineh = [0]*h
    minew = [0]*w
    for i in range(m):
        a,b = map(int, input().split())
        a -= 1
        b -= 1
        mine.append((a,b))
        mineh[a] += 1
        minew[b] += 1
    mine = set(mine)
    maxh = max(mineh)
    hnum = []
    maxw = max(minew)
    wnum = []
    for i in range(h):
        if mineh[i] == maxh:
            hnum.append(i)
    for i in range(w):
        if minew[i] == maxw:
            wnum.append(i)
    hnum = set(hnum)
    wnum = set(wnum)
    NO = 0
    for i, j in mine:
        if i in hnum and j in wnum:
            NO += 1
    if len(hnum)*len(wnum) > NO:
        print(maxw+maxh)
    else:
        print(maxw+maxh-1)
resolve()
import sys

K, A, B = sys.stdin.readline().split(" ")
k = long(K)
a = long(A)
b = long(B)

if (b-a) >= 2:
	hitsteps = a - 1
	leftoversteps = k - hitsteps
	rem = (leftoversteps)%2
	swaps = (leftoversteps-rem)/2
	multbiscuits = swaps * (b-a)
	print(int(multbiscuits+rem+a))
else:
	print(int(k+1))

### FIXED CODE ###

import sys

K, A, B = sys.stdin.readline().split(" ")
k = long(K)
a = long(A)
b = long(B)

if (b-a) >= 2:
	hitsteps = a - 1
	leftoversteps = k - hitsteps
	rem = (leftoversteps)%2
	swaps = (leftoversteps-rem)/2
	multbiscuits = swaps * (b-a)
	print(int(multbiscuits+rem+a))
else:
	print(int(k+1))
#わからないのでギブアップコピペ
h,w=map(int,input().split())

a=[] #入力データのリスト化
for i in range(h):
  x=input().split()
  a.append(x)

h1=[]
for i in range(H):
  if a[i]==['.']*w:
    h1.append(i)

w1=[]
for i in range(w):
  flag=0
  for j in range(h):
    if a[j][i]=='#':
      flag=1
      break
  if flag==0:
    w.append(i)

ans=[]
for i in range(h):
  if i not in h1:
    r=[]
    for j in range(w):
      r.append(a[i][j])
    ans.append(r)

for i in range(lens(ans)):
  print(''.join(ans[i]))


### FIXED CODE ###

#全然わからず完コピ
H,W=map(int,input().split())
a=[list(input()) for _ in range(H)]
h=[]
for i in range(H):
  if a[i]==['.']*W:
    h.append(i)

w=[]
for i in range(W):
  flag=0
  for j in range(H):
    if a[j][i]=='#':
      flag=1
      break
  if flag==0:
    w.append(i)
  
ans=[]
for i in range(H):
  if i not in h:
    r=[]
    for j in range(W):
      if j not in w:
        r.append(a[i][j])
    ans.append(r)

for i in range(len(ans)):
  print("".join(ans[i]))
import math
K = int(input())
A = list(map(int,input().split()))
if A[N-1]!=2:
    print(-1)
elif K==1:
    print(2,3)
else:
    nmin = 2
    nmax = 2+A[K-1]-1
    flag = 0
    for i in range(K-2,-1,-1):
        b = A[i]
        nmin = math.ceil(nmin/b)*b
        nmax = math.floor(nmax/b)*b
        if nmin>nmax:
            flag = 1
            break
        nmax += b-1
    if flag==1:
        print(-1)
    else:
        print(nmin,nmax)

### FIXED CODE ###

K = int(input())
A = list(map(int,input().split()))
B = [2,2]
for i in range(K-1,-1,-1):
    a = A[i]
    bmin = B[0]
    bmax = B[1]
    if bmin%a==0:
        bmin = bmin
    else:
        bmin = (bmin//a+1)*a
    if bmin>bmax:
        B = []
        break
    else:
        if bmax%a==0:
            bmax = bmax+a-1
        else:
            bmax = (bmax//a)*a+a-1
        B = [bmin,bmax]
if len(B)==0:
    print(-1)
else:
    print(B[0],B[1])
n, m, x = map(int, input().split())
a = [int(i) for i in input().split()]

l = sum(1 if x < X else 0 for x in A)
r = m -l

print(min(l,r))

### FIXED CODE ###

n, m, x = map(int, input().split())
a = [int(i) for i in input().split()]

l = sum(1 if i < x else 0 for i in a)
r = m -l

print(min(l,r))
A, B, C, D = map(int, input().split())
s = list(range(A, B + 1))
cnt = [-1] * 2 

for i in s:
    if i % C == 0 and cnt[0] == -1:
        cnt[0] = s.index(i)
    if i % D == 0 and cnt[1] == -1:
        cnt[1] = s.index(i)
    if cnt[0] != -1 and cnt[1] != -1:
        break

t = s[cnt[0] :: C]
u = s[cnt[1] :: D]

ans = len(s) - (len(set(t)) + len(set(u)) - len(set(t) & set(u)))
print(ans)

### FIXED CODE ###

from fractions import gcd
A, B, C, D = map(int, input().split())
CD = C * D // gcd(C, D)

U = B - A + 1
U_c = (B // C) - (A // C) + int(A % C == 0)
U_d = (B // D) - (A // D) + int(A % D == 0)
U_cd = (B // CD) - (A // CD) + int(A % CD == 0)

ans = U - (U_c + U_d - U_cd)
print(ans)
a, b, c, d = map(int, input().split())
print(pow((c-a)**2 + (d-b)**2, 0.5))

### FIXED CODE ###

a, b, c, d = map(float, input().split())                                    
print(pow((c - a)**2 + (d - b)**2, 0.5))
s=input()
n=len(s)
for i in range(n):
    if s[i]!=s[n-1-i]:
        print("No")
        exit()
harf=int((n-1)/2
for i in range(harf):
    if s[i]!=s[harf-1-i]:
        print("No")
        exit()
for i in range(harf+1,n):
    if s[i]!=s[n-1-(i-harf-1)]:
        print("No")
        exit()
print("Yes")

### FIXED CODE ###

s=input()
n=len(s)
ans=1
for i in range(n):
    if s[i]!=s[n-1-i]:
        ans=0
harf=int((n-1)/2)
for i in range(harf):
    if s[i]!=s[harf-1-i]:
        ans=0
for i in range(harf+1,n):
    if s[i]!=s[n-1-(i-harf-1)]:
        ans=0
if ans==1:
    print("Yes")
else:
    print("No")
s = list(set(map(int,input.split())))
print(len(s))


### FIXED CODE ###

s = list(set(map(int,input().split())))
print(len(s))
n = int(input())
t, a = map(int, input().split())
e = [int(i) for i in input().split()]

temp = []
for i in e:
    temp.append(abs(t - i * 0.006 - a))
    
print(e)
print(temp)
print(temp.index(min(temp)) + 1)




### FIXED CODE ###

X, Y = map(int, input().split())
print(X + Y // 2)
import sys
sys.setrecursionlimit(100000)
x=int(input())
A=[]
B=[]
C=[]
dictA=[-1]*x
dictB=[-1]*x
dictC=[-1]*x
for i in range(x):
    a,b,c=list(map(int,input().split()))
    A.append(a)
    B.append(b)
    C.append(c)
def maxA(n):
    if dictA[n]!=-1:
        return dictA[n]
    if n==0:
        dictA[n]=A[0]
        return A[0]
    dictA[n]=A[n]+max(maxB(n-1),maxC(n-1))
    return dictA[n]
def maxB(n):
    if dictB[n]!=-1:
        return dictB[n]
    if n==0:
        dictB[n]=B[0]
        return B[0]
    dictB[n]=B[n]+max(maxA(n-1),maxC(n-1))
    return dictB[n]
def maxC(n):
    if dictC[n]!=-1:
        return dictC[n]
    if n==0:
        dictC[n]=C[0]
        return C[0]
    dictC[n]=C[n]+max(maxB(n-1),maxA(n-1))
    return dictC[n]
def Nmax(n):
    return max(maxA(n),maxB(n),maxC(n))
print(Nmax(x-1)%10000)



### FIXED CODE ###

import sys
sys.setrecursionlimit(10000000)
x=int(input())
A=[]
B=[]
C=[]
dictA=[-1]*x
dictB=[-1]*x
dictC=[-1]*x
for i in range(x):
    a,b,c=list(map(int,input().split()))
    A.append(a)
    B.append(b)
    C.append(c)
def maxA(n):
    if dictA[n]!=-1:
        return dictA[n]
    if n==0:
        dictA[n]=A[0]
        return A[0]
    dictA[n]=A[n]+max(maxB(n-1),maxC(n-1))
    return dictA[n]
def maxB(n):
    if dictB[n]!=-1:
        return dictB[n]
    if n==0:
        dictB[n]=B[0]
        return B[0]
    dictB[n]=B[n]+max(maxA(n-1),maxC(n-1))
    return dictB[n]
def maxC(n):
    if dictC[n]!=-1:
        return dictC[n]
    if n==0:
        dictC[n]=C[0]
        return C[0]
    dictC[n]=C[n]+max(maxB(n-1),maxA(n-1))
    return dictC[n]
def Nmax(n):
    return max(maxA(n),maxB(n),maxC(n))
print(Nmax(x-1))
N, K = map(int,input().split())
H = list(map(int,input().split()))
DP = [0]*(N+1)
def dH(i,j):
  return abs(H[i-1] - H[j-1])
for i in range(2,N+1):
  DP[i] = DP[i-1] + dH(i-1, i)
  for j in range(2,K+1):
    jc = DP[i-j] + dH(i-j, i)
    if (i-j)>=1 and jc < DP[i]:
      DP[i] = jc
print(DP[N])

### FIXED CODE ###

N, K = map(int,input().split())
H = list(map(int,input().split()))
import numpy as np
dp = np.zeros(N,dtype=np.int)
harr = np.array(H)
for i in range(1,N):
  St = max(0,i-K)
  Hi = harr[i]
  dp[i] = min(dp[max(0,i-K):i] + np.abs(Hi - harr[max(0,i-K):i]))
print(dp[-1])
a, b = int(input())
print(a*b if a<=9 and b<=9 else -1)

### FIXED CODE ###

a, b = map(int, input().split())
print(a*b if a<=9 and b<=9 else -1)
n = int(input())
h = list(map(int, input().split()))
cnt = h.sort()
for i in range(n):
  for j int range(j):
    if cnt[i] == h[j]:
      print(h[j], end = "")

### FIXED CODE ###

n = int(input())
h = tuple(map(int, input().split()))
ans = [0]*n
for i in range(n):
  ans[h[i]-1] = i+1
print(*ans)
N, K = [int(i) for i in input().split()]
H = np.array([int(i) for i in input().split()])

dp = np.zeros(N)
for i in range(1, N):
    L = []
    for j in range(max(0, i-K), i):
        L.append(dp[j] + abs(H[i] - H[j]))
    dp[i] = min(L)

print(int(dp[-1])

### FIXED CODE ###

def func():
    N, K = [int(i) for i in input().split()]
    H = [int(i) for i in input().split()]
    
    dp = [0]*N
    for i in range(1, N):
        L = []
        for j in range(max(0, i-K), i):
            L.append(dp[j] + abs(H[i] - H[j]))
        dp[i] = min(L)

    print(dp[-1])
    
if __name__=="__main__":
    func()
x,y=map(int,input().split())
if x<y:
    print("<")
elif x>y:
    print(">")
else:
    print("=")

### FIXED CODE ###

x,y=input().split()
if x<y:
    print("<")
elif x>y:
    print(">")
else:
    print("=")
import numpy as np
N=int(input())
p=list(int,input().split())
x=np.prod(p)
if x<10**18:
  print(x)
else:
  print(-1)

### FIXED CODE ###

N=int(input())
a=list(map(int,input().split()))
a.sort()
a.reverse()
if a.count(0)>0:
  print(0)
else:
  ans=a[0]
  flag=0
  for i in range(1,N):
    ans*=a[i]
    if ans>10**18:
      flag+=1
      print(-1)
      break
  if flag==0:
    print(ans)
S = input()
arr =['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
print(arr[arr.index(S)+1])



### FIXED CODE ###

S = input()
arr =['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
print(7-arr.index(S))
N = int(input())
K = int(input())
print(N-K+1)

### FIXED CODE ###

N,K = map(int,input().split())
print(N-K+1)
n,k=map(int,input().split())
h=list(map(int,input().split()))
h=filter(lambda x => k, h)
print(len(h))

### FIXED CODE ###

n,k=map(int,input().split())
h=list(map(int,input().split()))
h=list(filter(lambda x:x >= k, h))
print(len(h))
import math

def combination_count(n,k):
    s = math.factorial(n)
    t = math.factorial(k)
    u = math.factorial(n-k)
    
    return s//(t*u)
    
n,k = map(int,input().split())

for i in range(1,k+1):
    print(combination_count(n-k+1, i) * combination_count(k-1, i-1) % (10**9 +7))

### FIXED CODE ###

import math

def combination_count(n,k):
    if k < 0 or k > n:
        return 0
    if n == 0 or k == 0:
        return 1
    
    s = math.factorial(n)
    t = math.factorial(k)
    u = math.factorial(n-k)
    
    return s//(t*u) 
    
n,k = map(int,input().split())
mod = 10**9 + 7

for i in range(1,k+1):
    x = combination_count(n-k+1, i) 
    y = combination_count(k-1, i-1)
    z = (x*y) % mod
    print(z)
# 入力
data = input().split()
 
# プレイヤ人数
player = int(data[0])
# はじめのポイント
initPoint = int(data[1])
# 質問回数
question = int(data[2])
 
# はじめの各プレイヤのポイント
playerPoint = []
 
for i in range(player):
  playerPoint.append(initPoint)
 
# 問題解答
for i in range(question):
  # 全員のポイントを-1
  playerPoint = [i-1 for i in playerPoint]
  # 正解者
  corrPlayer = int(input())
  # 正解者のポイントを+1(減らさない)
  playerPoint[corrPlayer -1] = playerPoint[corrPlayer -1] + 1
  
# 解答
for i in range(player):
  if playerPoint(i) <= 0:
    print('No')
  else:
    print('Yes')

### FIXED CODE ###

# 入力
data = input().split()
 
# プレイヤ人数
player = int(data[0])
# はじめのポイント
initPoint = int(data[1])
# 質問回数
question = int(data[2])
 
# 正解しない場合のプレイヤのポイント
playerPoint = []
 
for i in range(player):
  playerPoint.append(initPoint - question)
 
# 問題解答
for i in range(question):
  # 正解者
  corrPlayer = int(input())
  # 正解者のポイントを+1(減らさない)
  playerPoint[corrPlayer -1] = playerPoint[corrPlayer -1] + 1
  
# 解答
for i in range(player):
  if playerPoint[i] <= 0:
    print('No')
  else:
    print('Yes')
from sys import stdin
A,B,X=list(map(int,(stdin.readline().strip().split())))

left=0
right=10**(9)+1

while(right-left>1):
    num = left + (right - left) // 2
    cost=A*num+B*(len(str(num)))
    if cost<=X:
        left=num
    else:
        right=num
print(left)

### FIXED CODE ###

week=['SUN','MON','TUE','WED','THU','FRI','SAT']
S=input()
day=week.index(S)
print(7-day)
def main():
    a,b = map(int,input().split())
    if a+(a-a%673)%a:
        print(0)
    else:
        mini = 2020
        for i in range(a,b+1):
            for j in range(a,i):
                joke = i*j%2019
                if joke<mini:
                    mini = joke
                    if mini == 0:
                        print(0)
                        return 0
        print(mini)
main()

### FIXED CODE ###

def main():
    a,b = map(int,input().split())
    if a-b+1>=2019:
        print(0)
    else:
        mini = 2020
        for i in range(a,b+1):
            for j in range(a,i):
                joke = i*j%2019
                if joke<mini:
                    mini = joke
                    if mini == 0:
                        print(0)
                        return 0
        print(mini)
main()
a=input()
c=list(map(int, input().split(" ")))
 
from statistics import mean, median,variance,stdev
 
if sum(list1)-max(list1)< max(list1):
    print("Yes")
else:
    print("No")

### FIXED CODE ###

a = input()
b = list(map(int, input().split()))

if sum(b)-max(b) > max(b):
    print("Yes")
else:
    print("No")
#ABC061C
N, K = map(int, input().split())
ab = [list(map(int, input().split())) for _ in range(N)]

cnt = 0
ans = ""
for a, b in ab:
    ans += str(a) * b
    cnt += b
    if cnt >= K:
        print(ans[-1])
        break

### FIXED CODE ###

#ABC061C
import sys
N, K = map(int, input().split())
ab = [list(map(int, input().split())) for _ in range(N)]
now = 0
ab.sort()
for a, b in ab:
    now += b
    if now >= K:
            print(a)
            sys.exit()
import collections

N=int(input())
S=[input() for i in range(N)]
S = sorted(collections.Counter(S))

print_list = []
count = []
S_max = 0

S_common = S.most_common()
#print(S_common)

values, counts = zip(*S_common)
#print(counts[0])

for i in range(len(values)):
	if counts[0] == counts[i]:
		print(values[i])


### FIXED CODE ###

import collections
S_print = []
N=int(input())
S=[input() for i in range(N)]
S = collections.Counter(S)

S_common = S.most_common()

for i in range(len(S_common)):
	if S_common[0][1] == S_common[i][1]:
		S_print.append(S_common[i][0])

S_print_new = sorted(S_print)
#print(S_print_new)
for i in range(len(S_print_new)):
	print(S_print_new[i])
while 1:a,b=map(int,input().split())
    if a==b==0:break
    for i in range(a):print('#'*b)
    print()


### FIXED CODE ###

while 1:
    a, b = map(int, input().split())
    if a == b == 0:break
    for i in range(a):print('#' * b)
    print()
from bisect import bisect

icase=1
if icase==1:
    n=int(input())
    a=[0]*n
    for i in range(n):
        a[i]=-int(input())
elif icase==2:
    n=5
    a=[-2,-1,-4,-5,-3]
elif icase==3:
    n=4
    a=[0,0,0,0]

def loopa():

    n=len(a)
    dp = [10**10]*(n+1)
    dp[0] = -10**10
    
    print(n,a,dp)
    for i in range(n):
#        idx = bisect(dp, a[i]-1)
        idx = bisect(dp, a[i])
        dp[idx] = min(a[i], dp[idx])
        print(i,idx,dp)

#        print("i:",i,"a:",a,"dp2:",dp2)            
    return dp

dp=loopa()        

print(bisect(dp, 10**10-1)-1)    



### FIXED CODE ###

from bisect import bisect

icase=1
if icase==1:
    n=int(input())
    a=[0]*n
    for i in range(n):
        a[i]=-int(input())
elif icase==2:
    n=5
    a=[-2,-1,-4,-5,-3]
elif icase==3:
    n=4
    a=[0,0,0,0]

def loopa():

    n=len(a)
    dp = [10**10]*(n+1)
    dp[0] = -10**10
    
    for i in range(n):
#        idx = bisect(dp, a[i]-1)
        idx = bisect(dp, a[i])
        dp[idx] = min(a[i], dp[idx])

#        print("i:",i,"a:",a,"dp2:",dp2)            
    return dp

dp=loopa()        

print(bisect(dp, 10**10-1)-1)