Each item in the game has a level. The higher the level is, the higher basic parameters the item has. We shall consider only the following basic parameters: attack (atk), defense (def) and resistance to different types of impact (res).

Each item belongs to one class. In this problem we will only consider three of such classes: weapon, armor, orb.

Besides, there's a whole new world hidden inside each item. We can increase an item's level travelling to its world. We can also capture the so-called residents in the Item World

Residents are the creatures that live inside items. Each resident gives some bonus to the item in which it is currently located. We will only consider residents of types: gladiator (who improves the item's atk), sentry (who improves def) and physician (who improves res).

Each item has the size parameter. The parameter limits the maximum number of residents that can live inside an item. We can move residents between items. Within one moment of time we can take some resident from an item and move it to some other item if it has a free place for a new resident. We cannot remove a resident from the items and leave outside — any of them should be inside of some item at any moment of time.

Laharl has a certain number of items. He wants to move the residents between items so as to equip himself with weapon, armor and a defensive orb. The weapon's atk should be largest possible in the end. Among all equipping patterns containing weapon's maximum atk parameter we should choose the ones where the armor’s def parameter is the largest possible. Among all such equipment patterns we should choose the one where the defensive orb would have the largest possible res parameter. Values of the parameters def and res of weapon, atk and res of armor and atk and def of orb are indifferent for Laharl.

Find the optimal equipment pattern Laharl can get.
The first line contains number *n* (3 ≤ *n* ≤ 100) — representing how many items Laharl has.

Then follow *n* lines. Each line contains description of an item. The description has the following form: "*name* *class* *atk* *def* *res* *size*" — the item's name, class, basic attack, defense and resistance parameters and its size correspondingly. 
 -  *name* and *class* are strings and *atk*, *def*, *res* and *size* are integers. -  *name* consists of lowercase Latin letters and its length can range from 1 to 10, inclusive. -  *class* can be "weapon", "armor" or "orb". -  0 ≤ *atk*, *def*, *res* ≤ 1000. -  1 ≤ *size* ≤ 10. 
It is guaranteed that Laharl has at least one item of each class.

The next line contains an integer *k* (1 ≤ *k* ≤ 1000) — the number of residents.

Then *k* lines follow. Each of them describes a resident. A resident description looks like: "*name* *type* *bonus* *home*" — the resident's name, his type, the number of points the resident adds to the item's corresponding parameter and the name of the item which currently contains the resident. 
 -  *name*, *type* and *home* are strings and *bonus* is an integer. -  *name* consists of lowercase Latin letters and its length can range from 1 to 10, inclusive. -  *type* may be "gladiator", "sentry" or "physician". -  1 ≤ *bonus* ≤ 100. 
It is guaranteed that the number of residents in each item does not exceed the item's size.

The names of all items and residents are pairwise different.

All words and numbers in the input are separated by single spaces.
4
sword weapon 10 2 3 2
pagstarmor armor 0 15 3 1
iceorb orb 3 2 13 2
longbow weapon 9 1 2 1
5
mike gladiator 5 longbow
bobby sentry 6 pagstarmor
petr gladiator 7 iceorb
teddy physician 6 sword
blackjack sentry 8 sword
sword 2 petr mike 
pagstarmor 1 blackjack 
iceorb 2 teddy bobby 
4
sword weapon 10 2 3 2
pagstarmor armor 0 15 3 1
iceorb orb 3 2 13 2
longbow weapon 9 1 2 1
6
mike gladiator 5 longbow
bobby sentry 6 pagstarmor
petr gladiator 7 iceorb
teddy physician 6 sword
blackjack sentry 8 sword
joe physician 6 iceorb
longbow 1 mike 
pagstarmor 1 bobby 
iceorb 2 petr joe 
3
weapon weapon 10 5 2 4
armor armor 0 20 0 6
orb orb 3 4 25 3
3
x gladiator 12 armor
y sentry 13 orb
z physician 5 weapon
weapon 1 x 
armor 1 y 
orb 1 z 
6
c armor 0 13 0 3
a weapon 23 0 0 3
b weapon 20 0 0 4
e orb 0 0 13 3
d armor 0 15 0 4
f orb 0 0 17 5
5
j gladiator 7 a
h gladiator 3 f
g gladiator 4 e
i gladiator 7 a
k gladiator 1 b
a 3 i j g 
d 2 h k 
f 0 
6
c armor 0 13 0 3
a weapon 23 0 0 3
b weapon 10 0 0 4
e orb 0 0 19 3
d armor 0 15 0 4
f orb 0 0 17 5
5
j gladiator 7 e
h gladiator 5 f
g gladiator 4 c
i gladiator 7 b
k gladiator 1 d
a 3 i j h 
d 2 g k 
e 0 
6
c armor 0 14 0 3
a weapon 23 0 0 3
b weapon 21 0 0 4
e orb 0 0 13 3
d armor 0 5 0 4
f orb 0 0 17 5
5
j gladiator 7 f
h gladiator 5 a
g gladiator 6 c
i gladiator 7 d
k gladiator 1 d
b 4 i j g h 
c 1 k 
f 0 
5
xx weapon 15 0 0 2
yy armor 0 14 0 2
zz orb 0 0 16 2
pp weapon 1 0 0 5
qq armor 0 1 0 4
9
a gladiator 2 pp
b gladiator 3 pp
c gladiator 4 pp
d sentry 1 pp
e sentry 2 pp
f sentry 3 qq
g physician 2 qq
h physician 3 qq
i physician 3 qq
xx 2 c b 
yy 2 f e 
zz 2 i h 
5
pixiebow weapon 10 0 7 2
lance weapon 12 4 2 1
bushido armor 0 14 1 4
starorb orb 2 3 16 3
moonorb orb 3 4 8 1
8
ste gladiator 10 moonorb
phi gladiator 8 starorb
hjk gladiator 5 starorb
poi gladiator 7 starorb
jor gladiator 4 lance
pui gladiator 6 bushido
zea gladiator 1 bushido
qwe gladiator 2 pixiebow
pixiebow 2 ste phi 
bushido 4 poi pui hjk jor 
starorb 2 qwe zea 
5
pixiebow weapon 10 0 7 2
lance weapon 12 4 2 1
bushido armor 0 14 1 4
starorb orb 2 3 16 3
moonorb orb 3 4 8 1
11
ste gladiator 10 moonorb
phi gladiator 8 starorb
hjk gladiator 5 starorb
poi gladiator 7 starorb
jor gladiator 4 lance
pui gladiator 6 bushido
zea gladiator 1 bushido
qwe gladiator 2 pixiebow
kkk physician 20 bushido
lkh sentry 4 pixiebow
oop sentry 8 bushido
lance 1 jor 
bushido 4 pui zea kkk oop 
starorb 3 phi hjk poi 
3
hcyc weapon 646 755 45 5
hfh armor 556 875 434 6
jkob orb 654 0 65 7
1
jhcytccc sentry 76 jkob
hcyc 0 
hfh 1 jhcytccc 
jkob 0 
5
axgovq orb 75 830 793 3
zeckskde weapon 316 351 917 2
nrtbk armor 540 178 332 2
nhjodogdd armor 880 453 186 2
dxrgvjhvhg weapon 961 616 561 3
7
zvi gladiator 16 axgovq
rq gladiator 52 axgovq
jlr physician 69 zeckskde
jackbeadx sentry 90 zeckskde
vuhpq gladiator 23 nrtbk
vfhyjtps physician 88 nhjodogdd
rb gladiator 90 nhjodogdd
dxrgvjhvhg 3 rb rq vuhpq 
nhjodogdd 2 jackbeadx zvi 
axgovq 2 vfhyjtps jlr 
5
hs orb 830 875 879 3
fudflb weapon 13 854 317 1
wwvhixixe armor 500 285 382 2
h orb 58 57 409 2
y weapon 734 408 297 4
12
wvxwgjoera physician 55 hs
usukedr sentry 41 hs
iu physician 100 hs
gixlx gladiator 42 fudflb
rd sentry 95 wwvhixixe
baff sentry 6 wwvhixixe
wkhxoubhy sentry 73 h
iat physician 3 h
c sentry 24 y
oveuaziss gladiator 54 y
byfhpjezzv sentry 18 y
jxnpuofle gladiator 65 y
y 4 c oveuaziss byfhpjezzv jxnpuofle 
wwvhixixe 2 rd baff 
hs 3 wvxwgjoera usukedr iu 
4
sword weapon 0 0 0 2
pagstarmor armor 0 0 0 1
iceorb orb 0 0 0 2
longbow weapon 0 0 0 1
1
teddy physician 1 iceorb
sword 0 
pagstarmor 0 
iceorb 1 teddy 
def searchBest(iType, number, rType, countResidents):
    global items, equipped
    best = 0
    ret = None
    for item, params in items.items():
        if params[0] == iType:
            val = int(params[number])
            if countResidents:
                for resid in equipped[item]:
                    if resid[1] == rType:
                        val += int(resid[2])
            if val > best:
                best = val
                ret = item
    return ret

def printItem(item):
    global equipped
    print(item, len(equipped[item]), ' '.join([x[0] for x in equipped[item]]))

def searchFor(iType, number, might):
    global items, equipped
    pSum = [0]
    for x in might:
        pSum.append(pSum[-1] + int(x[2]))
    while len(pSum) < 11:
        pSum.append(pSum[-1])
    
    bestVal = 0
    for item, params in items.items():
        if params[0] == iType:
            val = int(params[number]) + pSum[int(params[4])]
            if val > bestVal:
                bestVal = val

    for item, params in items.items():
        if params[0] == iType:
            val = int(params[number]) + pSum[int(params[4])]
            if val == bestVal:
                equipped[item] = might[:int(params[4])]
                printItem(item)
                return None


n = int(input())
items = dict()
equipped = dict()
for i in range(n):
    t = tuple(input().split())
    items[t[0]] = t[1:]

k = int(input())
residents = [None for i in range(k)]
glads = dict()
for i in range(k):
    residents[i] = tuple(input().split())
    equipped[residents[i][3]] = equipped.get(residents[i][3], []) + [residents[i]]

canSwap = False
for name, val in equipped.items():
    if len(val) < int(items[name][4]):
        canSwap = True

if canSwap:
    glads = sorted([x for x in residents if x[1] == 'gladiator'], key = lambda x: -int(x[2]))
    sentries = sorted([x for x in residents if x[1] == 'sentry'], key = lambda x: -int(x[2]))
    phys = sorted([x for x in residents if x[1] == 'physician'], key = lambda x: -int(x[2]))

    searchFor('weapon', 1, glads)
    searchFor('armor', 2, sentries)
    searchFor('orb', 3, phys)
else:
    printItem(searchBest('weapon', 1, 'gladiator', True))
    printItem(searchBest('armor', 2, 'sentry', True))
    printItem(searchBest('orb', 3, 'physician', True))
