#!/usr/bin/env python

from re import compile
from sys import stdin

splitter = compile(r'\s+')

in_pre = False
headings = []
for line in stdin:
    if line.startswith('```'):
        in_pre = not in_pre
    if in_pre or not line.startswith('#'):
        continue
    level, heading = splitter.split(line, 1)
    if 'Table of Contents' in heading:
        continue
    headings.append((len(level), heading.strip()))

# ignore the first one, it's more of a title
headings.pop(0)

print('\n## Table of Contents\n')
min_level = min(h[0] for h in headings)
for heading in headings:
    level = heading[0] - min_level
    pre = ' ' * (level * 3)
    title = heading[1]
    link = title.lower().replace(' ', '-').replace('`', '')
    print(f'{pre}* [{title}](#{link})')
print()
