//renaming to i, k
package p;
class A{
	private void m(final int i, int j){
		class J{
			int k;
			void k(){
				k= k;
			}
		}
	}
}