#!/usr/bin/env python3

import sys
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('input',
                    help='the input file')

options = parser.parse_args(sys.argv[1:])

with open(options.input) as f:
    content = f.read().strip()

print(content)
