#!/usr/bin/env python

from pandocfilters import *
import json
import sys


def appendHeader(v):
    
    global newtext
    text = v['c'][2]
    level = v['c'][0]
    thisLevel = newtext['c'][1]
    for i in range(1,level):
        previousList = thisLevel
        thisLevel = previousList
        typeofLast = thisLevel[-1][-1]['t']
        if typeofLast=="Plain":
            previousList[-1].append(newList())
            thisLevel = previousList[-1][-1]['c'][1]
        else:
            thisLevel = previousList[-1][-1]['c'][1]
    thisLevel.append([Plain(text)])
    
def query(k, v, f, meta):
    global lines
    global newtext
    thisLevel = newtext
    if k == 'Strong':
        while True:
            #sys.stderr.write(json.dumps(thisLevel['c'][1]))
            lastType = thisLevel['c'][1][-1][-1]['t']
            if lastType=="Plain":
                thisLevel['c'][1][-1].append(Plain([LineBreak(),Emph(v)]))
                break
            elif lastType=="OrderedList":
                thisLevel = thisLevel['c'][1][-1][-1]
            else:
                sys.stderr.write(lastType)
                raise
        #lines.append(Para(v))


def newList():
    """
    The germ of an ordered list.
    """
    return {"c":[[1,{"t":"DefaultStyle","c":[]},{"t":"DefaultDelim","c":[]}],[]],"t":"OrderedList"}
        
def bolded(v):
    global lines
    global meta
    lines = []
    walk(v['c'],query,v['t'],meta)
    return lines
    
if __name__ == "__main__":
    global meta
    global newtext
    document = json.load(sys.stdin)
    meta = document[0]
    text = document[1]
    newtext = newList()
    level = 0
    for item in text:
        if item['t']=="Header":
            appendHeader(item)
        else:
            for term in bolded(item):
                pass
    document[1] = [newtext]
    print json.dumps(document)