import sys
def justify(filename, width = 60):
with open(filename, 'r') as file:
words, cnt, size, dir = [], 0, 0, 0
for line in file:
if line in ['\n','\r\n']:
printline(width, words, cnt, size, dir, 'no')
words, cnt, size, dir = [], 0, 0, dir
print ''
continue
for word in line.split():
if cnt + size + len(word) > width:
printline(width, words, cnt, size, dir, 'yes')
words, cnt, size, dir = [], 0, 0, 1 - dir
words.append(word); cnt += 1; size += len(word)
printline(width, words, cnt, size, dir, 'no')
def printline(width, words, cnt, size, dir, just):
if just == 'no' or cnt == 1:
for i in range(0, cnt):
sys.stdout.write(words[i])
sys.stdout.write('\n' if i == cnt - 1 else ' ')
elif cnt > 1:
nblanks, holes, i = width - size, cnt - 1, 0
while holes > 0:
n = int((nblanks - dir) / holes) + dir
sys.stdout.write(words[i] + ' ' * n)
nblanks -= n; holes -= 1; i += 1
print words[cnt - 1]
else:
print ''