#include <stdlib.h> #include <stdio.h> #include <string.h> struct tag { char str[4]; }; void swap(struct tag *a, int i, int j) { struct tag temp = a[i]; a[i] = a[j]; a[j] = temp; } void do_permute(struct tag *tag, int lo, int hi) { if (lo == hi) { for (int i = 0; i < hi; i++) { } } else { for (int i = lo; i < hi; i++) { swap(tag, lo, i); do_permute(tag, lo + 1, hi); swap(tag, lo, i); } } } void permute(const char *str) { int count[256] = {0}; // first pass: assign individual indices for each letter for (int i = 0; i < l; i++) { unsigned char k = str[i]; count[k]++; } // second pass: remove index for single instances for (int i = 0; i < l; i++) { unsigned char k = str[i]; if (count[k] == 1) tag[i].str[1] = '\0'; } do_permute(tag, 0, l); } int main(void) { permute("TATTOO"); return 0; }
Standard input is empty
T1 A T2 T3 O1 O2 T1 A T2 T3 O2 O1 T1 A T2 O1 T3 O2 T1 A T2 O1 O2 T3 T1 A T2 O2 O1 T3 T1 A T2 O2 T3 O1 T1 A T3 T2 O1 O2 T1 A T3 T2 O2 O1 T1 A T3 O1 T2 O2 T1 A T3 O1 O2 T2 T1 A T3 O2 O1 T2 T1 A T3 O2 T2 O1 T1 A O1 T3 T2 O2 T1 A O1 T3 O2 T2 T1 A O1 T2 T3 O2 T1 A O1 T2 O2 T3 T1 A O1 O2 T2 T3 T1 A O1 O2 T3 T2 T1 A O2 T3 O1 T2 T1 A O2 T3 T2 O1 T1 A O2 O1 T3 T2 T1 A O2 O1 T2 T3 T1 A O2 T2 O1 T3 T1 A O2 T2 T3 O1 T1 T2 A T3 O1 O2 T1 T2 A T3 O2 O1 T1 T2 A O1 T3 O2 T1 T2 A O1 O2 T3 T1 T2 A O2 O1 T3 T1 T2 A O2 T3 O1 T1 T2 T3 A O1 O2 T1 T2 T3 A O2 O1 T1 T2 T3 O1 A O2 T1 T2 T3 O1 O2 A T1 T2 T3 O2 O1 A T1 T2 T3 O2 A O1 T1 T2 O1 T3 A O2 T1 T2 O1 T3 O2 A T1 T2 O1 A T3 O2 T1 T2 O1 A O2 T3 T1 T2 O1 O2 A T3 T1 T2 O1 O2 T3 A T1 T2 O2 T3 O1 A T1 T2 O2 T3 A O1 T1 T2 O2 O1 T3 A T1 T2 O2 O1 A T3 T1 T2 O2 A O1 T3 T1 T2 O2 A T3 O1 T1 T3 T2 A O1 O2 T1 T3 T2 A O2 O1 T1 T3 T2 O1 A O2 T1 T3 T2 O1 O2 A T1 T3 T2 O2 O1 A T1 T3 T2 O2 A O1 T1 T3 A T2 O1 O2 T1 T3 A T2 O2 O1 T1 T3 A O1 T2 O2 T1 T3 A O1 O2 T2 T1 T3 A O2 O1 T2 T1 T3 A O2 T2 O1 T1 T3 O1 A T2 O2 T1 T3 O1 A O2 T2 T1 T3 O1 T2 A O2 T1 T3 O1 T2 O2 A T1 T3 O1 O2 T2 A T1 T3 O1 O2 A T2 T1 T3 O2 A O1 T2 T1 T3 O2 A T2 O1 T1 T3 O2 O1 A T2 T1 T3 O2 O1 T2 A T1 T3 O2 T2 O1 A T1 T3 O2 T2 A O1 T1 O1 T2 T3 A O2 T1 O1 T2 T3 O2 A T1 O1 T2 A T3 O2 T1 O1 T2 A O2 T3 T1 O1 T2 O2 A T3 T1 O1 T2 O2 T3 A T1 O1 T3 T2 A O2 T1 O1 T3 T2 O2 A T1 O1 T3 A T2 O2 T1 O1 T3 A O2 T2 T1 O1 T3 O2 A T2 T1 O1 T3 O2 T2 A T1 O1 A T3 T2 O2 T1 O1 A T3 O2 T2 T1 O1 A T2 T3 O2 T1 O1 A T2 O2 T3 T1 O1 A O2 T2 T3 T1 O1 A O2 T3 T2 T1 O1 O2 T3 A T2 T1 O1 O2 T3 T2 A T1 O1 O2 A T3 T2 T1 O1 O2 A T2 T3 T1 O1 O2 T2 A T3 T1 O1 O2 T2 T3 A T1 O2 T2 T3 O1 A T1 O2 T2 T3 A O1 T1 O2 T2 O1 T3 A T1 O2 T2 O1 A T3 T1 O2 T2 A O1 T3 T1 O2 T2 A T3 O1 T1 O2 T3 T2 O1 A T1 O2 T3 T2 A O1 T1 O2 T3 O1 T2 A T1 O2 T3 O1 A T2 T1 O2 T3 A O1 T2 T1 O2 T3 A T2 O1 T1 O2 O1 T3 T2 A T1 O2 O1 T3 A T2 T1 O2 O1 T2 T3 A T1 O2 O1 T2 A T3 T1 O2 O1 A T2 T3 T1 O2 O1 A T3 T2 T1 O2 A T3 O1 T2 T1 O2 A T3 T2 O1 T1 O2 A O1 T3 T2 T1 O2 A O1 T2 T3 T1 O2 A T2 O1 T3 T1 O2 A T2 T3 O1 A T1 T2 T3 O1 O2 A T1 T2 T3 O2 O1 A T1 T2 O1 T3 O2 A T1 T2 O1 O2 T3 A T1 T2 O2 O1 T3 A T1 T2 O2 T3 O1 A T1 T3 T2 O1 O2 A T1 T3 T2 O2 O1 A T1 T3 O1 T2 O2 A T1 T3 O1 O2 T2 A T1 T3 O2 O1 T2 A T1 T3 O2 T2 O1 A T1 O1 T3 T2 O2 A T1 O1 T3 O2 T2 A T1 O1 T2 T3 O2 A T1 O1 T2 O2 T3 A T1 O1 O2 T2 T3 A T1 O1 O2 T3 T2 A T1 O2 T3 O1 T2 A T1 O2 T3 T2 O1 A T1 O2 O1 T3 T2 A T1 O2 O1 T2 T3 A T1 O2 T2 O1 T3 A T1 O2 T2 T3 O1 A T2 T1 T3 O1 O2 A T2 T1 T3 O2 O1 A T2 T1 O1 T3 O2 A T2 T1 O1 O2 T3 A T2 T1 O2 O1 T3 A T2 T1 O2 T3 O1 A T2 T3 T1 O1 O2 A T2 T3 T1 O2 O1 A T2 T3 O1 T1 O2 A T2 T3 O1 O2 T1 A T2 T3 O2 O1 T1 A T2 T3 O2 T1 O1 A T2 O1 T3 T1 O2 A T2 O1 T3 O2 T1 A T2 O1 T1 T3 O2 A T2 O1 T1 O2 T3 A T2 O1 O2 T1 T3 A T2 O1 O2 T3 T1 A T2 O2 T3 O1 T1 A T2 O2 T3 T1 O1 A T2 O2 O1 T3 T1 A T2 O2 O1 T1 T3 A T2 O2 T1 O1 T3 A T2 O2 T1 T3 O1 A T3 T2 T1 O1 O2 A T3 T2 T1 O2 O1 A T3 T2 O1 T1 O2 A T3 T2 O1 O2 T1 A T3 T2 O2 O1 T1 A T3 T2 O2 T1 O1 A T3 T1 T2 O1 O2 A T3 T1 T2 O2 O1 A T3 T1 O1 T2 O2 A T3 T1 O1 O2 T2 A T3 T1 O2 O1 T2 A T3 T1 O2 T2 O1 A T3 O1 T1 T2 O2 A T3 O1 T1 O2 T2 A T3 O1 T2 T1 O2 A T3 O1 T2 O2 T1 A T3 O1 O2 T2 T1 A T3 O1 O2 T1 T2 A T3 O2 T1 O1 T2 A T3 O2 T1 T2 O1 A T3 O2 O1 T1 T2 A T3 O2 O1 T2 T1 A T3 O2 T2 O1 T1 A T3 O2 T2 T1 O1 A O1 T2 T3 T1 O2 A O1 T2 T3 O2 T1 A O1 T2 T1 T3 O2 A O1 T2 T1 O2 T3 A O1 T2 O2 T1 T3 A O1 T2 O2 T3 T1 A O1 T3 T2 T1 O2 A O1 T3 T2 O2 T1 A O1 T3 T1 T2 O2 A O1 T3 T1 O2 T2 A O1 T3 O2 T1 T2 A O1 T3 O2 T2 T1 A O1 T1 T3 T2 O2 A O1 T1 T3 O2 T2 A O1 T1 T2 T3 O2 A O1 T1 T2 O2 T3 A O1 T1 O2 T2 T3 A O1 T1 O2 T3 T2 A O1 O2 T3 T1 T2 A O1 O2 T3 T2 T1 A O1 O2 T1 T3 T2 A O1 O2 T1 T2 T3 A O1 O2 T2 T1 T3 A O1 O2 T2 T3 T1 A O2 T2 T3 O1 T1 A O2 T2 T3 T1 O1 A O2 T2 O1 T3 T1 A O2 T2 O1 T1 T3 A O2 T2 T1 O1 T3 A O2 T2 T1 T3 O1 A O2 T3 T2 O1 T1 A O2 T3 T2 T1 O1 A O2 T3 O1 T2 T1 A O2 T3 O1 T1 T2 A O2 T3 T1 O1 T2 A O2 T3 T1 T2 O1 A O2 O1 T3 T2 T1 A O2 O1 T3 T1 T2 A O2 O1 T2 T3 T1 A O2 O1 T2 T1 T3 A O2 O1 T1 T2 T3 A O2 O1 T1 T3 T2 A O2 T1 T3 O1 T2 A O2 T1 T3 T2 O1 A O2 T1 O1 T3 T2 A O2 T1 O1 T2 T3 A O2 T1 T2 O1 T3 A O2 T1 T2 T3 O1 T2 A T1 T3 O1 O2 T2 A T1 T3 O2 O1 T2 A T1 O1 T3 O2 T2 A T1 O1 O2 T3 T2 A T1 O2 O1 T3 T2 A T1 O2 T3 O1 T2 A T3 T1 O1 O2 T2 A T3 T1 O2 O1 T2 A T3 O1 T1 O2 T2 A T3 O1 O2 T1 T2 A T3 O2 O1 T1 T2 A T3 O2 T1 O1 T2 A O1 T3 T1 O2 T2 A O1 T3 O2 T1 T2 A O1 T1 T3 O2 T2 A O1 T1 O2 T3 T2 A O1 O2 T1 T3 T2 A O1 O2 T3 T1 T2 A O2 T3 O1 T1 T2 A O2 T3 T1 O1 T2 A O2 O1 T3 T1 T2 A O2 O1 T1 T3 T2 A O2 T1 O1 T3 T2 A O2 T1 T3 O1 T2 T1 A T3 O1 O2 T2 T1 A T3 O2 O1 T2 T1 A O1 T3 O2 T2 T1 A O1 O2 T3 T2 T1 A O2 O1 T3 T2 T1 A O2 T3 O1 T2 T1 T3 A O1 O2 T2 T1 T3 A O2 O1 T2 T1 T3 O1 A O2 T2 T1 T3 O1 O2 A T2 T1 T3 O2 O1 A T2 T1 T3 O2 A O1 T2 T1 O1 T3 A O2 T2 T1 O1 T3 O2 A T2 T1 O1 A T3 O2 T2 T1 O1 A O2 T3 T2 T1 O1 O2 A T3 T2 T1 O1 O2 T3 A T2 T1 O2 T3 O1 A T2 T1 O2 T3 A O1 T2 T1 O2 O1 T3 A T2 T1 O2 O1 A T3 T2 T1 O2 A O1 T3 T2 T1 O2 A T3 O1 T2 T3 T1 A O1 O2 T2 T3 T1 A O2 O1 T2 T3 T1 O1 A O2 T2 T3 T1 O1 O2 A T2 T3 T1 O2 O1 A T2 T3 T1 O2 A O1 T2 T3 A T1 O1 O2 T2 T3 A T1 O2 O1 T2 T3 A O1 T1 O2 T2 T3 A O1 O2 T1 T2 T3 A O2 O1 T1 T2 T3 A O2 T1 O1 T2 T3 O1 A T1 O2 T2 T3 O1 A O2 T1 T2 T3 O1 T1 A O2 T2 T3 O1 T1 O2 A T2 T3 O1 O2 T1 A T2 T3 O1 O2 A T1 T2 T3 O2 A O1 T1 T2 T3 O2 A T1 O1 T2 T3 O2 O1 A T1 T2 T3 O2 O1 T1 A T2 T3 O2 T1 O1 A T2 T3 O2 T1 A O1 T2 O1 T1 T3 A O2 T2 O1 T1 T3 O2 A T2 O1 T1 A T3 O2 T2 O1 T1 A O2 T3 T2 O1 T1 O2 A T3 T2 O1 T1 O2 T3 A T2 O1 T3 T1 A O2 T2 O1 T3 T1 O2 A T2 O1 T3 A T1 O2 T2 O1 T3 A O2 T1 T2 O1 T3 O2 A T1 T2 O1 T3 O2 T1 A T2 O1 A T3 T1 O2 T2 O1 A T3 O2 T1 T2 O1 A T1 T3 O2 T2 O1 A T1 O2 T3 T2 O1 A O2 T1 T3 T2 O1 A O2 T3 T1 T2 O1 O2 T3 A T1 T2 O1 O2 T3 T1 A T2 O1 O2 A T3 T1 T2 O1 O2 A T1 T3 T2 O1 O2 T1 A T3 T2 O1 O2 T1 T3 A T2 O2 T1 T3 O1 A T2 O2 T1 T3 A O1 T2 O2 T1 O1 T3 A T2 O2 T1 O1 A T3 T2 O2 T1 A O1 T3 T2 O2 T1 A T3 O1 T2 O2 T3 T1 O1 A T2 O2 T3 T1 A O1 T2 O2 T3 O1 T1 A T2 O2 T3 O1 A T1 T2 O2 T3 A O1 T1 T2 O2 T3 A T1 O1 T2 O2 O1 T3 T1 A T2 O2 O1 T3 A T1 T2 O2 O1 T1 T3 A T2 O2 O1 T1 A T3 T2 O2 O1 A T1 T3 T2 O2 O1 A T3 T1 T2 O2 A T3 O1 T1 T2 O2 A T3 T1 O1 T2 O2 A O1 T3 T1 T2 O2 A O1 T1 T3 T2 O2 A T1 O1 T3 T2 O2 A T1 T3 O1 T3 A T2 T1 O1 O2 T3 A T2 T1 O2 O1 T3 A T2 O1 T1 O2 T3 A T2 O1 O2 T1 T3 A T2 O2 O1 T1 T3 A T2 O2 T1 O1 T3 A T1 T2 O1 O2 T3 A T1 T2 O2 O1 T3 A T1 O1 T2 O2 T3 A T1 O1 O2 T2 T3 A T1 O2 O1 T2 T3 A T1 O2 T2 O1 T3 A O1 T1 T2 O2 T3 A O1 T1 O2 T2 T3 A O1 T2 T1 O2 T3 A O1 T2 O2 T1 T3 A O1 O2 T2 T1 T3 A O1 O2 T1 T2 T3 A O2 T1 O1 T2 T3 A O2 T1 T2 O1 T3 A O2 O1 T1 T2 T3 A O2 O1 T2 T1 T3 A O2 T2 O1 T1 T3 A O2 T2 T1 O1 T3 T2 A T1 O1 O2 T3 T2 A T1 O2 O1 T3 T2 A O1 T1 O2 T3 T2 A O1 O2 T1 T3 T2 A O2 O1 T1 T3 T2 A O2 T1 O1 T3 T2 T1 A O1 O2 T3 T2 T1 A O2 O1 T3 T2 T1 O1 A O2 T3 T2 T1 O1 O2 A T3 T2 T1 O2 O1 A T3 T2 T1 O2 A O1 T3 T2 O1 T1 A O2 T3 T2 O1 T1 O2 A T3 T2 O1 A T1 O2 T3 T2 O1 A O2 T1 T3 T2 O1 O2 A T1 T3 T2 O1 O2 T1 A T3 T2 O2 T1 O1 A T3 T2 O2 T1 A O1 T3 T2 O2 O1 T1 A T3 T2 O2 O1 A T1 T3 T2 O2 A O1 T1 T3 T2 O2 A T1 O1 T3 T1 T2 A O1 O2 T3 T1 T2 A O2 O1 T3 T1 T2 O1 A O2 T3 T1 T2 O1 O2 A T3 T1 T2 O2 O1 A T3 T1 T2 O2 A O1 T3 T1 A T2 O1 O2 T3 T1 A T2 O2 O1 T3 T1 A O1 T2 O2 T3 T1 A O1 O2 T2 T3 T1 A O2 O1 T2 T3 T1 A O2 T2 O1 T3 T1 O1 A T2 O2 T3 T1 O1 A O2 T2 T3 T1 O1 T2 A O2 T3 T1 O1 T2 O2 A T3 T1 O1 O2 T2 A T3 T1 O1 O2 A T2 T3 T1 O2 A O1 T2 T3 T1 O2 A T2 O1 T3 T1 O2 O1 A T2 T3 T1 O2 O1 T2 A T3 T1 O2 T2 O1 A T3 T1 O2 T2 A O1 T3 O1 T2 T1 A O2 T3 O1 T2 T1 O2 A T3 O1 T2 A T1 O2 T3 O1 T2 A O2 T1 T3 O1 T2 O2 A T1 T3 O1 T2 O2 T1 A T3 O1 T1 T2 A O2 T3 O1 T1 T2 O2 A T3 O1 T1 A T2 O2 T3 O1 T1 A O2 T2 T3 O1 T1 O2 A T2 T3 O1 T1 O2 T2 A T3 O1 A T1 T2 O2 T3 O1 A T1 O2 T2 T3 O1 A T2 T1 O2 T3 O1 A T2 O2 T1 T3 O1 A O2 T2 T1 T3 O1 A O2 T1 T2 T3 O1 O2 T1 A T2 T3 O1 O2 T1 T2 A T3 O1 O2 A T1 T2 T3 O1 O2 A T2 T1 T3 O1 O2 T2 A T1 T3 O1 O2 T2 T1 A T3 O2 T2 T1 O1 A T3 O2 T2 T1 A O1 T3 O2 T2 O1 T1 A T3 O2 T2 O1 A T1 T3 O2 T2 A O1 T1 T3 O2 T2 A T1 O1 T3 O2 T1 T2 O1 A T3 O2 T1 T2 A O1 T3 O2 T1 O1 T2 A T3 O2 T1 O1 A T2 T3 O2 T1 A O1 T2 T3 O2 T1 A T2 O1 T3 O2 O1 T1 T2 A T3 O2 O1 T1 A T2 T3 O2 O1 T2 T1 A T3 O2 O1 T2 A T1 T3 O2 O1 A T2 T1 T3 O2 O1 A T1 T2 T3 O2 A T1 O1 T2 T3 O2 A T1 T2 O1 T3 O2 A O1 T1 T2 T3 O2 A O1 T2 T1 T3 O2 A T2 O1 T1 T3 O2 A T2 T1 O1 O1 A T2 T3 T1 O2 O1 A T2 T3 O2 T1 O1 A T2 T1 T3 O2 O1 A T2 T1 O2 T3 O1 A T2 O2 T1 T3 O1 A T2 O2 T3 T1 O1 A T3 T2 T1 O2 O1 A T3 T2 O2 T1 O1 A T3 T1 T2 O2 O1 A T3 T1 O2 T2 O1 A T3 O2 T1 T2 O1 A T3 O2 T2 T1 O1 A T1 T3 T2 O2 O1 A T1 T3 O2 T2 O1 A T1 T2 T3 O2 O1 A T1 T2 O2 T3 O1 A T1 O2 T2 T3 O1 A T1 O2 T3 T2 O1 A O2 T3 T1 T2 O1 A O2 T3 T2 T1 O1 A O2 T1 T3 T2 O1 A O2 T1 T2 T3 O1 A O2 T2 T1 T3 O1 A O2 T2 T3 T1 O1 T2 A T3 T1 O2 O1 T2 A T3 O2 T1 O1 T2 A T1 T3 O2 O1 T2 A T1 O2 T3 O1 T2 A O2 T1 T3 O1 T2 A O2 T3 T1 O1 T2 T3 A T1 O2 O1 T2 T3 A O2 T1 O1 T2 T3 T1 A O2 O1 T2 T3 T1 O2 A O1 T2 T3 O2 T1 A O1 T2 T3 O2 A T1 O1 T2 T1 T3 A O2 O1 T2 T1 T3 O2 A O1 T2 T1 A T3 O2 O1 T2 T1 A O2 T3 O1 T2 T1 O2 A T3 O1 T2 T1 O2 T3 A O1 T2 O2 T3 T1 A O1 T2 O2 T3 A T1 O1 T2 O2 T1 T3 A O1 T2 O2 T1 A T3 O1 T2 O2 A T1 T3 O1 T2 O2 A T3 T1 O1 T3 T2 A T1 O2 O1 T3 T2 A O2 T1 O1 T3 T2 T1 A O2 O1 T3 T2 T1 O2 A O1 T3 T2 O2 T1 A O1 T3 T2 O2 A T1 O1 T3 A T2 T1 O2 O1 T3 A T2 O2 T1 O1 T3 A T1 T2 O2 O1 T3 A T1 O2 T2 O1 T3 A O2 T1 T2 O1 T3 A O2 T2 T1 O1 T3 T1 A T2 O2 O1 T3 T1 A O2 T2 O1 T3 T1 T2 A O2 O1 T3 T1 T2 O2 A O1 T3 T1 O2 T2 A O1 T3 T1 O2 A T2 O1 T3 O2 A T1 T2 O1 T3 O2 A T2 T1 O1 T3 O2 T1 A T2 O1 T3 O2 T1 T2 A O1 T3 O2 T2 T1 A O1 T3 O2 T2 A T1 O1 T1 T2 T3 A O2 O1 T1 T2 T3 O2 A O1 T1 T2 A T3 O2 O1 T1 T2 A O2 T3 O1 T1 T2 O2 A T3 O1 T1 T2 O2 T3 A O1 T1 T3 T2 A O2 O1 T1 T3 T2 O2 A O1 T1 T3 A T2 O2 O1 T1 T3 A O2 T2 O1 T1 T3 O2 A T2 O1 T1 T3 O2 T2 A O1 T1 A T3 T2 O2 O1 T1 A T3 O2 T2 O1 T1 A T2 T3 O2 O1 T1 A T2 O2 T3 O1 T1 A O2 T2 T3 O1 T1 A O2 T3 T2 O1 T1 O2 T3 A T2 O1 T1 O2 T3 T2 A O1 T1 O2 A T3 T2 O1 T1 O2 A T2 T3 O1 T1 O2 T2 A T3 O1 T1 O2 T2 T3 A O1 O2 T2 T3 T1 A O1 O2 T2 T3 A T1 O1 O2 T2 T1 T3 A O1 O2 T2 T1 A T3 O1 O2 T2 A T1 T3 O1 O2 T2 A T3 T1 O1 O2 T3 T2 T1 A O1 O2 T3 T2 A T1 O1 O2 T3 T1 T2 A O1 O2 T3 T1 A T2 O1 O2 T3 A T1 T2 O1 O2 T3 A T2 T1 O1 O2 T1 T3 T2 A O1 O2 T1 T3 A T2 O1 O2 T1 T2 T3 A O1 O2 T1 T2 A T3 O1 O2 T1 A T2 T3 O1 O2 T1 A T3 T2 O1 O2 A T3 T1 T2 O1 O2 A T3 T2 T1 O1 O2 A T1 T3 T2 O1 O2 A T1 T2 T3 O1 O2 A T2 T1 T3 O1 O2 A T2 T3 T1 O2 A T2 T3 O1 T1 O2 A T2 T3 T1 O1 O2 A T2 O1 T3 T1 O2 A T2 O1 T1 T3 O2 A T2 T1 O1 T3 O2 A T2 T1 T3 O1 O2 A T3 T2 O1 T1 O2 A T3 T2 T1 O1 O2 A T3 O1 T2 T1 O2 A T3 O1 T1 T2 O2 A T3 T1 O1 T2 O2 A T3 T1 T2 O1 O2 A O1 T3 T2 T1 O2 A O1 T3 T1 T2 O2 A O1 T2 T3 T1 O2 A O1 T2 T1 T3 O2 A O1 T1 T2 T3 O2 A O1 T1 T3 T2 O2 A T1 T3 O1 T2 O2 A T1 T3 T2 O1 O2 A T1 O1 T3 T2 O2 A T1 O1 T2 T3 O2 A T1 T2 O1 T3 O2 A T1 T2 T3 O1 O2 T2 A T3 O1 T1 O2 T2 A T3 T1 O1 O2 T2 A O1 T3 T1 O2 T2 A O1 T1 T3 O2 T2 A T1 O1 T3 O2 T2 A T1 T3 O1 O2 T2 T3 A O1 T1 O2 T2 T3 A T1 O1 O2 T2 T3 O1 A T1 O2 T2 T3 O1 T1 A O2 T2 T3 T1 O1 A O2 T2 T3 T1 A O1 O2 T2 O1 T3 A T1 O2 T2 O1 T3 T1 A O2 T2 O1 A T3 T1 O2 T2 O1 A T1 T3 O2 T2 O1 T1 A T3 O2 T2 O1 T1 T3 A O2 T2 T1 T3 O1 A O2 T2 T1 T3 A O1 O2 T2 T1 O1 T3 A O2 T2 T1 O1 A T3 O2 T2 T1 A O1 T3 O2 T2 T1 A T3 O1 O2 T3 T2 A O1 T1 O2 T3 T2 A T1 O1 O2 T3 T2 O1 A T1 O2 T3 T2 O1 T1 A O2 T3 T2 T1 O1 A O2 T3 T2 T1 A O1 O2 T3 A T2 O1 T1 O2 T3 A T2 T1 O1 O2 T3 A O1 T2 T1 O2 T3 A O1 T1 T2 O2 T3 A T1 O1 T2 O2 T3 A T1 T2 O1 O2 T3 O1 A T2 T1 O2 T3 O1 A T1 T2 O2 T3 O1 T2 A T1 O2 T3 O1 T2 T1 A O2 T3 O1 T1 T2 A O2 T3 O1 T1 A T2 O2 T3 T1 A O1 T2 O2 T3 T1 A T2 O1 O2 T3 T1 O1 A T2 O2 T3 T1 O1 T2 A O2 T3 T1 T2 O1 A O2 T3 T1 T2 A O1 O2 O1 T2 T3 A T1 O2 O1 T2 T3 T1 A O2 O1 T2 A T3 T1 O2 O1 T2 A T1 T3 O2 O1 T2 T1 A T3 O2 O1 T2 T1 T3 A O2 O1 T3 T2 A T1 O2 O1 T3 T2 T1 A O2 O1 T3 A T2 T1 O2 O1 T3 A T1 T2 O2 O1 T3 T1 A T2 O2 O1 T3 T1 T2 A O2 O1 A T3 T2 T1 O2 O1 A T3 T1 T2 O2 O1 A T2 T3 T1 O2 O1 A T2 T1 T3 O2 O1 A T1 T2 T3 O2 O1 A T1 T3 T2 O2 O1 T1 T3 A T2 O2 O1 T1 T3 T2 A O2 O1 T1 A T3 T2 O2 O1 T1 A T2 T3 O2 O1 T1 T2 A T3 O2 O1 T1 T2 T3 A O2 T1 T2 T3 O1 A O2 T1 T2 T3 A O1 O2 T1 T2 O1 T3 A O2 T1 T2 O1 A T3 O2 T1 T2 A O1 T3 O2 T1 T2 A T3 O1 O2 T1 T3 T2 O1 A O2 T1 T3 T2 A O1 O2 T1 T3 O1 T2 A O2 T1 T3 O1 A T2 O2 T1 T3 A O1 T2 O2 T1 T3 A T2 O1 O2 T1 O1 T3 T2 A O2 T1 O1 T3 A T2 O2 T1 O1 T2 T3 A O2 T1 O1 T2 A T3 O2 T1 O1 A T2 T3 O2 T1 O1 A T3 T2 O2 T1 A T3 O1 T2 O2 T1 A T3 T2 O1 O2 T1 A O1 T3 T2 O2 T1 A O1 T2 T3 O2 T1 A T2 O1 T3 O2 T1 A T2 T3 O1