using System;
using System.Threading;
using System.Threading.Tasks;
 
class Program
{
    private static object syncObject = new object();
    private static void Write()
    {
        lock (syncObject)
        {
        	Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
            Console.WriteLine("test");
        }
    }
 
    static void Main(string[] args)
    {
        lock (syncObject)
        {
        	Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
            Task.Run(() => Write());
            Thread.Sleep(3000);
        }
    }
}
				dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKY2xhc3MgUHJvZ3JhbQp7CiAgICBwcml2YXRlIHN0YXRpYyBvYmplY3Qgc3luY09iamVjdCA9IG5ldyBvYmplY3QoKTsKICAgIHByaXZhdGUgc3RhdGljIHZvaWQgV3JpdGUoKQogICAgewogICAgICAgIGxvY2sgKHN5bmNPYmplY3QpCiAgICAgICAgewogICAgICAgIAlDb25zb2xlLldyaXRlTGluZShUaHJlYWQuQ3VycmVudFRocmVhZC5NYW5hZ2VkVGhyZWFkSWQpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgidGVzdCIpOwogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgbG9jayAoc3luY09iamVjdCkKICAgICAgICB7CiAgICAgICAgCUNvbnNvbGUuV3JpdGVMaW5lKFRocmVhZC5DdXJyZW50VGhyZWFkLk1hbmFnZWRUaHJlYWRJZCk7CiAgICAgICAgICAgIFRhc2suUnVuKCgpID0+IFdyaXRlKCkpOwogICAgICAgICAgICBUaHJlYWQuU2xlZXAoMzAwMCk7CiAgICAgICAgfQogICAgfQp9