# Returns the slope of the line defined by points p1 and p2. Assumes that
# p1 and p2 have distinct x-coordinates
def slope(p1, p2):
    return (p2[1] - p1[1])/(p2[0] - p1[0])

# Determines if a pair of points line on a vertical line. This case has to
# be considered separately since the slope is infinity in this case
def isVertical(p1, p2):
    return p1[0] == p2[0]

# Inputting the points
print "please enter text. Hit return key after entering text:"
line = raw_input()
L = []
while line:
    L.append(map(float, line.split())) # split at the occurrence of white-space and ad numbers as nested lists
    line = raw_input()    
    
# Consider all triples of points and check slopes
collinearPoints = []
for i in range(len(L)):          # iterate by index through all the values in the list
    for j in range(i+1, len(L)):      # iterate by index through all later points
        for k in range(j+1, len(L)):
            if isVertical(L[i], L[j]) and isVertical(L[j], L[k]):
                collinearPoints.append([L[i], L[j], L[k]])
            elif not isVertical(L[i], L[j]) and not isVertical(L[j], L[k]) and slope(L[i], L[j]) == slope(L[j], L[k]):
                collinearPoints.append([L[i], L[j], L[k]])
                

# Output the list of collinear points (or print a message indicating that there are none)
if len(collinearPoints) == 0:
    print "There are no collinear points"
else:
    print "The following point triples are collinear:"
    for e in collinearPoints:
        print e
