using System;
using System.Collections.Generic;
using System.Linq;

namespace AOJ0088
{
    class Program
    {
        private static readonly Dictionary<char, string> FirstMap = new Dictionary<char, string>
            {
                {' ', "101"},
                {'\'', "000000"},
                {',', "000011"},
                {'-', "10010001"},
                {'.', "010001"},
                {'?', "000001"},
                {'A', "100101"},
                {'B', "10011010"},
                {'C', "0101"},
                {'D', "0001"},
                {'E', "110"},
                {'F', "01001"},
                {'G', "10011011"},
                {'H', "010000"},
                {'I', "0111"},
                {'J', "10011000"},
                {'K', "0110"},
                {'L', "00100"},
                {'M', "10011001"},
                {'N', "10011110"},
                {'O', "00101"},
                {'P', "111"},
                {'Q', "10011111"},
                {'R', "1000"},
                {'S', "00110"},
                {'T', "00111"},
                {'U', "10011100"},
                {'V', "10011101"},
                {'W', "000010"},
                {'X', "10010010"},
                {'Y', "10010011"},
                {'Z', "10010000"}
            };

        private static readonly Dictionary<string, char> SecondMap = new Dictionary<string, char>
            {
                {"00000", 'A'},
                {"00001", 'B'},
                {"00010", 'C'},
                {"00011", 'D'},
                {"00100", 'E'},
                {"00101", 'F'},
                {"00110", 'G'},
                {"00111", 'H'},
                {"01000", 'I'},
                {"01001", 'J'},
                {"01010", 'K'},
                {"01011", 'L'},
                {"01100", 'M'},
                {"01101", 'N'},
                {"01110", 'O'},
                {"01111", 'P'},
                {"10000", 'Q'},
                {"10001", 'R'},
                {"10010", 'S'},
                {"10011", 'T'},
                {"10100", 'U'},
                {"10101", 'V'},
                {"10110", 'W'},
                {"10111", 'X'},
                {"11000", 'Y'},
                {"11001", 'Z'},
                {"11010", ' '},
                {"11011", '.'},
                {"11100", ','},
                {"11101", '-'},
                {"11110", '\''},
                {"11111", '?'},
            };

        static void Main()
        {
            foreach (var second in (from line in ReadInputs()
                                    select (from c in line
                                            select FirstMap[c])
                                        .Aggregate("", (s, s1) => s + s1)
                                    into first
                                    select (from n in Enumerable.Range(0, (int) Math.Ceiling(first.Length/5.0))
                                            let start = n*5
                                            let length = Math.Min(5, first.Length - start)
                                            let sub = first.Substring(start, length)
                                            let padded = sub.PadRight(5, '0')
                                            select SecondMap[padded])
                                        .Aggregate("", (s, c) => s + c)))
            {
                Console.WriteLine(second);
            }
        }

        private static IEnumerable<string> ReadInputs()
        {
            string line;
            while ((line = Console.ReadLine()) != null)
            {
                yield return line;
            }
        }
    }
}

Measured memory_bytes: 6688