from dataclasses import dataclass N, M = map(int, input().split()) e = list(map(int, input().split())) v, w = map(list, zip(*[map(int, input().split()) for _ in range(M)])) @dataclass class Data: v: int use: int prev: 'Data' sum_v, sum_w = [0]*(1<>j&1: sum_v[S] += v[j] sum_w[S] += w[j] now = [Data(0, 0, None) for _ in range(1< nxt[S|T].v: nxt[S|T].v = now[S].v+sum_v[T] nxt[S|T].use = T nxt[S|T].prev = now[S] if T == 0: break T = (T-1)&U now = nxt m = max(now[S].v for S in range(1<>i&1]) cur = cur.prev if len(ans) != N: ans += [[]]*(N-len(ans)) print(m) for a in ans[::-1]: print(len(a), *a)