import java.util.*;
public class DouDiZhuShunZi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] input = scanner.nextLine().split(" ");
List<String> cards = new ArrayList<>(Arrays.asList(input));
// 转换牌面为数值
Map<String, Integer> cardToValue = new HashMap<>();
cardToValue.put("3", 3);
cardToValue.put("4", 4);
cardToValue.put("5", 5);
cardToValue.put("6", 6);
cardToValue.put("7", 7);
cardToValue.put("8", 8);
cardToValue.put("9", 9);
cardToValue.put("10", 10);
cardToValue.put("J", 11);
cardToValue.put("Q", 12);
cardToValue.put("K", 13);
cardToValue.put("A", 14);
cardToValue.put("2", 15); // 2不参与顺子
List<Integer> values = new ArrayList<>();
for (String card : cards) {
values.add(cardToValue.get(card));
}
// 排序
Collections.sort(values);
// 检测顺子
List<List<Integer>> shunZiList = new ArrayList<>();
for (int i = 0; i < values.size(); i++) {
if (values.get(i) == 15) continue; // 跳过2
List<Integer> shunZi = new ArrayList<>();
shunZi.add(values.get(i));
for (int j = i + 1; j < values.size(); j++) {
if (values.get(j) == shunZi.get(shunZi.size() - 1) + 1) {
shunZi.add(values.get(j));
} else if (values.get(j) > shunZi.get(shunZi.size() - 1) + 1) {
break;
}
}
if (shunZi.size() >= 5) {
shunZiList.add(shunZi);
i += shunZi.size() - 1; // 跳过已检测的顺子
}
}
if (shunZiList.isEmpty()) {
System.out.println("No");
} else {
// 按顺子的第一张牌的大小排序
shunZiList.sort(Comparator.comparingInt(a -> a.get(0)));
for (List<Integer> shunZi : shunZiList) {
for (int i = 0; i < shunZi.size(); i++) {
System.out.print(getCardFromValue(shunZi.get(i)) + " ");
}
System.out.println();
}
}
}
private static String getCardFromValue(int value) {
Map<Integer, String> valueToCard = new HashMap<>();
valueToCard.put(3, "3");
valueToCard.put(4, "4");
valueToCard.put(5, "5");
valueToCard.put(6, "6");
valueToCard.put(7, "7");
valueToCard.put(8, "8");
valueToCard.put(9, "9");
valueToCard.put(10, "10");
valueToCard.put(11, "J");
valueToCard.put(12, "Q");
valueToCard.put(13, "K");
valueToCard.put(14, "A");
return valueToCard.get(value);
}
}