using System;

public struct KeyValuePair<K,V>
{
	public K key;
	public V value;

	public KeyValuePair(K k, V v) { key = k; value = v; }

	public KeyValuePair(K k) { key = k; value = default(V); }
}

public class Collection<T>
{
	public readonly T Item;

	public Collection (T item)
	{
		this.Item = item;
	}

	public void Find (ref T item)
	{
		item = Item;
	}
}

class X
{
	public static int Main ()
	{
		KeyValuePair<int,long> p = new KeyValuePair<int,long> (3);
		KeyValuePair<int,long> q = new KeyValuePair<int,long> (5, 9);

		Collection<KeyValuePair<int,long>> c = new Collection<KeyValuePair<int,long>> (q);
		c.Find (ref p);

		if (p.key != 5)
			return 1;
		if (p.value != 9)
			return 2;

		return 0;
	}
}