def parse(inFile):
    return [inFile.getInts() for i in xrange(inFile.getInt())]

def solve(levels):
    INFINITY = 2 * len(levels) + 1
    starrating = 0
    levelsDone = 0
    justCantDoIt = False
    while (len(levels) > 0):
        score = sum([2 if level[0] < INFINITY else 1 for level in levels if level[1] <= starrating])
        levelsDone += len([level for level in levels if level[1] <= starrating])
        levels = [level for level in levels if level[1] > starrating]
        starrating += score
        if (len([level for level in levels if level[1] <= starrating])):
            continue
        if len(levels) == 0:
            break
        if len([level for level in levels if level[0] <= starrating]) == 0:
            justCantDoIt = True
            break
        holder = -1
        for levelIndex in xrange(len(levels)):
            if levels[levelIndex][0] <= starrating:
                if (holder == -1) or (levels[levelIndex][1] > levels[holder][1]):
                    holder = levelIndex
        levels[holder][0] = INFINITY
        starrating += 1
        levelsDone += 1
    if justCantDoIt:
        return "Too Bad"
    else:
        return levelsDone

if __name__ == "__main__":
    from GCJ import GCJ
    GCJ(parse, solve, "/Users/lpebody/gcj/2012_1a/", "b").run()
