//work only for m >= n
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class memory_sm_wrong {

	int gcd(int a, int b) {
		if (b == 0)
			return a;
		return gcd(b, a % b);
	}

	String toString(int a, int b) {
		int d = gcd(a, b);
		return (a / d) + "/" + (b / d);
	}

	void solve() {
		int n = in.nextInt();
		assert 1 <= n && n <= 1000;
		int m = in.nextInt();
		assert 1 <= m && m <= 1000;
		int k = in.nextInt();
		assert 1 <= k && k <= 1000;
		out.println(k + "/" + 1);
		out.println(n);
		for (int i = 1; i <= n; i++) {
			out.println("0/1: Connect " + i + " to " + i);
		}

	}

	Scanner in;
	PrintWriter out;

	public void run() {
		try {
			in = new Scanner(new File("memory.in"));
			out = new PrintWriter("memory.out");
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			throw new Error();
		}
	}

	public static void main(String[] args) {
		new memory_sm_wrong().run();
	}
}
