(Analysis by Benjamin Qi)

Just simulate the described process. Maintain the number of non-space characters on your current line (denoted by $w$ in the code below). If adding the next word would cause the number of non-space characters to exceed $K$, then place it on a new line.

Dhruv Rohatgi's code (modified by Ben):

with open("word.in","r") as fin:
L = list(fin)
N,K = map(int,L[0].split())
with open("word.out","w") as fout:
w = 0 # current length of line
for c in L[1].split(): # go through each word
if w+len(c) > K: # place on new line
fout.write("\n"+c)
w = len(c)
else: # place on current line
if w > 0:
fout.write(" ")
fout.write(c)
w += len(c)
fout.write("\n")