#!/usr/bin/env python3
import time
from threading import Thread
def task(tid):
print("P({}) sleeping".format(tid))
time.sleep(5)
print( "P({}) entering CS".format(tid))
# CS
print( "P({}) exiting CS".format(tid))
# Scan command line arguments
thread_count = int( input() )
threads = [Thread(target=task, args=(tid,)) for tid in range(thread_count)]
for t in threads:
t.daemon = True # die if the program exits
t.start() # start the thread
# wait for completion
for t in threads: t.join()
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwppbXBvcnQgdGltZQpmcm9tIHRocmVhZGluZyBpbXBvcnQgVGhyZWFkCgpkZWYgdGFzayh0aWQpOgogICAgcHJpbnQoIlAoe30pIHNsZWVwaW5nIi5mb3JtYXQodGlkKSkKICAgIHRpbWUuc2xlZXAoNSkKICAgIHByaW50KCAiUCh7fSkgZW50ZXJpbmcgQ1MiLmZvcm1hdCh0aWQpKQogICAgIyBDUwogICAgcHJpbnQoICJQKHt9KSBleGl0aW5nIENTIi5mb3JtYXQodGlkKSkKCgojIFNjYW4gY29tbWFuZCBsaW5lIGFyZ3VtZW50cwp0aHJlYWRfY291bnQgICAgID0gaW50KCBpbnB1dCgpICkKCnRocmVhZHMgPSBbVGhyZWFkKHRhcmdldD10YXNrLCBhcmdzPSh0aWQsKSkgZm9yIHRpZCBpbiByYW5nZSh0aHJlYWRfY291bnQpXQpmb3IgdCBpbiB0aHJlYWRzOgogICAgdC5kYWVtb24gPSBUcnVlICMgZGllIGlmIHRoZSBwcm9ncmFtIGV4aXRzCiAgICB0LnN0YXJ0KCkgIyBzdGFydCB0aGUgdGhyZWFkCgojIHdhaXQgZm9yIGNvbXBsZXRpb24KZm9yIHQgaW4gdGhyZWFkczogdC5qb2luKCk=