def split(t,n=1990): out=[];op=False while t: pre="```\n" if op else "";room=n-len(pre)-4 if len(t)<=room:out.append(pre+t);break cut=t.rfind("\n",0,room);cut=cut if cut>room//2 else room chunk=t[:cut];t=t[cut:].lstrip("\n") o=op^(chunk.count("```")%2==1) out.append(pre+chunk+("\n```" if o else ""));op=o return out or [""]