import java.util.*;

public class Tikkupeli2 {
    public static int pisinPituus;
    public static String pisinKetju;
    public static int[] pisinSetti;

    public static void tutki(int[] rahat) {
        HashSet<String> muisti = new HashSet<String>();
        String ketju = "";
        int pituus = 0;
        int vika = rahat[rahat.length-1];
        while (true) {
            char uusi = 'H';
            for (int i = 0; i < rahat.length; i++) {
                if (pituus-rahat[i] < 0) break;
                if (ketju.charAt(pituus-rahat[i]) == 'H') uusi = 'V';
            }
            ketju += uusi;
            pituus++;
            if (ketju.length() >= vika) {
                String loppu = ketju.substring(ketju.length()-vika);
                if (muisti.contains(loppu)) {
                    break;
                }
                muisti.add(loppu);
            }
        }
        if (pituus > pisinPituus) {
            pisinPituus = pituus;
            pisinKetju = ketju;
            pisinSetti = rahat;
        }
    }

    public static int[] valinta = new int[100];

    public static void muodosta(int kolikko, int maara, int raja) {
        if (kolikko > raja) {
            if (maara == 0) return;
            int[] uusi = new int[maara];
            for (int i = 0; i < maara; i++) {
                uusi[i] = valinta[i];
            }
            tutki(uusi);
            return;
        }
        valinta[maara] = kolikko;
        muodosta(kolikko+1, maara+1, raja);
        muodosta(kolikko+1, maara, raja);
    }

    public static void main(String[] args) {
        int raja = 20;
        muodosta(1, 0, raja);
        System.out.println(pisinPituus);
        System.out.println(pisinKetju);
        System.out.println(Arrays.toString(pisinSetti));
    }
}
