/*
class Pair<T, U> {
	T x;
	U y;
	
	public Pair() { }
	public Pair(T x, U y) {
		this.x = x;
		this.y = y;
	}
	
	public T fst () {
		return x;
	}
	
	public U snd () { 
		return y;
    }
}
*/

public class Iteration {
    id(x) {
        return x;
    }

    m1(x, y) {
    	var help;
        help = m2(x, y);
        var y2 = help.snd();
        var x2 = id(x);
        return new Pair<>(x2,y2);

    }

    m2(x,y) {
        var help = m1(x, y);
        var x2 = help.fst();
        var y2 = id(y);
        return new Pair<>(x2, y2);
    }
}