using System;

class C
{
	void foo (int i)
	{
		Console.WriteLine ("Got int: {0}", i);
	}

	void foo (string message)
	{
		throw new ApplicationException ();
	}

	static void foo_static (long l)
	{
		Console.WriteLine ("Got static long: {0}", l);
	}
	
	static int MethodBest (short d)
	{
		return 1;
	}
	
	static int MethodBest (dynamic d)
	{
		return -1;
	}

	void test ()
	{
		dynamic d = 1;
		foo (d);
		foo_static (d);
	}

	static int Main ()
	{
		new C ().test ();
		
		if (MethodBest (1) != 1)
			return 1;
		
		return 0;
	}
}
