def cree():
    return { 'taille':0,
             'paquets': [[] for _ in range(32)] }

def contient(s, x):
    p = x % len(s['paquets'])
    return x in s['paquets'][p]

def ajoute(s, x):
    if contient(s, x):
        return
    s['taille'] += 1
    if s['taille'] > len(s['paquets']):
        _etend(s)
    _ajoute_aux(s['paquets'], x)

def _ajoute_aux(t, x):
    p = x % len(t)
    t[p].append(x)

def _etend(s):
    tmp = [[] for _ in range(2 * len(s['paquets']))]
    for x in enumere(s):
        _ajoute_aux(tmp, x)
    s['paquets'] = tmp

def enumere(s):
    tab = []
    for paquet in s['paquets']:
        tab.extend(paquet)
    return tab