using System;
using System.IO;
class Synch {
public void m1() {
lock(this) {
Console.WriteLine("Done");
}
}
public void m2() {
lock(this) {
m1();
}
}
public static void Main(String[] args) {
Synch s = new Synch();
s.m2();
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CmNsYXNzIFN5bmNoIHsKICAgIHB1YmxpYyB2b2lkIG0xKCkgewogICAgICAgIGxvY2sodGhpcykgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRG9uZSIpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgdm9pZCBtMigpIHsKICAgICAgICBsb2NrKHRoaXMpIHsKICAgICAgICAgICAgbTEoKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFN5bmNoIHMgPSBuZXcgU3luY2goKTsKICAgICAgICBzLm0yKCk7CiAgICB9Cn0=