package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	input := stdinToStringSlice()
	var partOne, partTwo string
	for j := range input[0] {
		freq := make(map[byte]int)
		for i := range input {
			freq[input[i][j]]++
		}
		partOne += getTopByte(freq)
		partTwo += getBottomByte(freq)
	}
	fmt.Println("Answer to Part 1: " + partOne)
	fmt.Println("Answer to Part 2: " + partTwo)
}

func getTopByte(f map[byte]int) string {
	var topByte byte
	var topByteCnt int
	for k, v := range f {
		if v > topByteCnt {
			topByteCnt = v
			topByte = k
		}
	}
	return string(topByte)
}

func getBottomByte(f map[byte]int) string {
	var botByte byte
	var botByteCnt int
	for k, v := range f {
		if v < botByteCnt || botByte == 0 {
			botByteCnt = v
			botByte = k
		}
	}
	return string(botByte)
}

func stdinToStringSlice() []string {
	var input []string
	scanner := bufio.NewScanner(os.Stdin)
	for scanner.Scan() {
		input = append(input, scanner.Text())
	}
	return input
}