using System;
 
public class MySingletonedObject 
{
	private static object me = new object();
	private int customData;
	private static MySingletonedObject sinobj;
	public static MySingletonedObject GetSingleton(int data)
	{
		lock (me)
		{
			if (sinobj == null)
			{
				sinobj = new MySingletonedObject(data);
			}
		}
		return sinobj;
	}
 
	public MySingletonedObject(int newData)
	{
		customData = newData;
	}
 
	public void Print()
	{
		Console.WriteLine(customData.ToString());
	}
}
 
public class Test
{
	public static void Main()
	{
		MySingletonedObject.GetSingleton(1).Print();
		MySingletonedObject.GetSingleton(6).Print();
	}
}
				dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIE15U2luZ2xldG9uZWRPYmplY3QgCnsKCXByaXZhdGUgc3RhdGljIG9iamVjdCBtZSA9IG5ldyBvYmplY3QoKTsKCXByaXZhdGUgaW50IGN1c3RvbURhdGE7Cglwcml2YXRlIHN0YXRpYyBNeVNpbmdsZXRvbmVkT2JqZWN0IHNpbm9iajsKCXB1YmxpYyBzdGF0aWMgTXlTaW5nbGV0b25lZE9iamVjdCBHZXRTaW5nbGV0b24oaW50IGRhdGEpCgl7CgkJbG9jayAobWUpCgkJewoJCQlpZiAoc2lub2JqID09IG51bGwpCgkJCXsKCQkJCXNpbm9iaiA9IG5ldyBNeVNpbmdsZXRvbmVkT2JqZWN0KGRhdGEpOwoJCQl9CgkJfQoJCXJldHVybiBzaW5vYmo7Cgl9CgoJcHVibGljIE15U2luZ2xldG9uZWRPYmplY3QoaW50IG5ld0RhdGEpCgl7CgkJY3VzdG9tRGF0YSA9IG5ld0RhdGE7Cgl9CgkKCXB1YmxpYyB2b2lkIFByaW50KCkKCXsKCQlDb25zb2xlLldyaXRlTGluZShjdXN0b21EYXRhLlRvU3RyaW5nKCkpOwoJfQp9CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJTXlTaW5nbGV0b25lZE9iamVjdC5HZXRTaW5nbGV0b24oMSkuUHJpbnQoKTsKCQlNeVNpbmdsZXRvbmVkT2JqZWN0LkdldFNpbmdsZXRvbig2KS5QcmludCgpOwoJfQp9