import java.util.*; public class Antti { static long INF = (long)1e18; static long cm, cd, cc, cl, cx, cv, ci; static long ccm, cxc, cix; static TreeMap[] p = new TreeMap[4]; static String string(long k, char c) { String s = ""; for (long i = 0; i < k; i++) s += c; return s; } static void add(int w, long c1, long c2, char r1, char r2) { long a = Math.min(c1, c2 / 3); p[w].put(string(1, r1) + string(3, r2), a); c1 -= a; c2 -= 3 * a; p[w].put(string(3, r2), c2 / 3); c2 %= 3; if (c1 > 0) { p[w].put(string(1, r1) + string(c2, r2), 1L); c1--; } else { p[w].put(string(c2, r2), 1L); } p[w].put(string(1, r1), (long)p[w].getOrDefault(string(1, r1), 0L) + c1); } static boolean check(long k) { ccm = Math.max(0L, cm - 3 * k); if (ccm > k || ccm > Math.min(cc, cm) || k - ccm < cd) return false; long uc = cc - ccm; cxc = Math.max(0L, uc - 3 * (k - ccm)); if (cxc > k || cxc > cx || k - cxc < cl) return false; long ux = cx - cxc; cix = Math.max(0L, ux - 3 * (k - cxc)); if (cix > k || cix > ci || k - cix < cv) return false; long ui = ci - cix; return 3 * (k - cix) >= ui; } public static void main(String[] args) { Scanner input = new Scanner(System.in); cm = input.nextLong(); cd = input.nextLong(); cc = input.nextLong(); cl = input.nextLong(); cx = input.nextLong(); cv = input.nextLong(); ci = input.nextLong(); for (int i = 0; i < 4; i++) p[i] = new TreeMap(); long k = 0; for (long b = INF; b >= 1; b /= 2) { while (!check(k + b)) k += b; } check(k + 1); System.out.println(k + 1); p[0].put("MMM", (cm - ccm) / 3); p[0].put(string((cm - ccm) % 3, 'M'), 1L); p[1].put("CM", ccm); add(1, cd, cc - ccm - cxc, 'D', 'C'); p[2].put("XC", cxc); add(2, cl, cx - cxc - cix, 'L', 'X'); p[3].put("IX", cix); add(3, cv, ci - cix, 'V', 'I'); for (int i = 0; i < 4; i++) p[i].put("", 0L); ArrayList answer = new ArrayList<>(); String[] r = new String[4]; long[] u = new long[4]; while (true) { for (int i = 0; i < 4; i++) { while (u[i] == 0 && p[i].size() > 0) { String it = (String)p[i].firstKey(); r[i] = it; u[i] = (long)p[i].get(it); p[i].remove(it); } if (u[i] == 0) {u[i] = INF; r[i] = "";} } long uu = Math.min(Math.min(u[0], u[1]), Math.min(u[2], u[3])); for (int i = 0; i < 4; i++) u[i] -= uu; String rr = r[0] + r[1] + r[2] + r[3]; if (rr.equals("")) break; answer.add(rr + " " + uu); } System.out.println(answer.size()); for (String a : answer) { System.out.println(a); } } }