from heapq import heappush, heappop
def dijkstra():
    que = []
    dist = {}
    heappush(que, (0, 0))
    dist[0] = 0
    while que:
        co, state = heappop(que)
        if dist[state] < co: continue
        if state == goal: return 1
        for i, e in enumerate(D):
            if state & (1 << i) == 0 and co+e[0]<=e[1]:
                n_state = state | (1 << i)
                if n_state not in dist:
                    heappush(que, (co+e[0], n_state))
                    dist[n_state] = co+e[0]
    return 0

while 1:
    n = input()
    if n==0: break
    D = [map(int, raw_input().split()) for i in xrange(n)]
    su = sum(e[0] for e in D)
    goal = 2**n-1
    print "Yes"*dijkstra()or"No"