package p;

class A {
	int i;
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}
	void m(int i, boolean bool) {this.i = i;}
}
class Super extends A {
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}

	void m(int i, boolean bool) { super.m(1, bool); }
}
class Recursive extends A {
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}

	void m(int i, boolean bool) { if (true) m(i, bool); }
}
class ThisRecursive extends A {
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}

	void m(int i, boolean bool) { this.m(i, bool); }
}
class AlmostRecursive extends A {
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}

	void m(int i, boolean bool) { new A().m(i, true); }
}
class RecursiveOrNot extends A {
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}

	void m(int i, boolean bool) { new RecursiveOrNot().m(i, bool); }
}
class NonRecursive extends A {
	/**
	 * @deprecated Use {@link #m(int,boolean)} instead
	 */
	void m(int i) {
		m(i, true);
	}

	void m(int i, boolean bool) { int k= i; }
}
class Calling extends A {
	void bar() { m(17, true); }
}
class Calling2 {
	void bar() { new A().m(17, true); }
}
class Calling3 {
	void bar() { new Recursive().m(17, true); }
}
