# http://m...content-available-to-author-only...e.com/q/1013334/35416
import itertools
lines="""\
A1,B2,B4,C2,C4,D2,D4
A1,B1,B3,C1,C3,D1,D3
A1,E2,E4,F2,F4
A1,E1,E3,F1,F3
D3,F2,F3
D4,F3,F4
B3,B4,E3
B2,B3,E2
D2,F1,F2
D1,F1,F4
B1,B4,E4
B1,B2,E1
C4,F3
B3,F3
C3,F3
B4,F3
B3,F2
C2,F2
C3,F2
B2,F2
B4,F4
C1,F4
B2,F1
C1,F1
C4,F4
B1,F4
C2,F1
B1,F1"""
lines = frozenset(frozenset(line.split(",")) for line in lines.split("\n"))
points = frozenset(itertools.chain.from_iterable(lines))
cnt = 0
for a, b, c in itertools.combinations(points, 3):
if (any(a in line and b in line and not c in line for line in lines) and
any(a in line and c in line for line in lines) and
any(b in line and c in line for line in lines)):
cnt += 1
print(cnt)
IyBodHRwOi8vbS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vcS8xMDEzMzM0LzM1NDE2CmltcG9ydCBpdGVydG9vbHMKbGluZXM9IiIiXApBMSxCMixCNCxDMixDNCxEMixENApBMSxCMSxCMyxDMSxDMyxEMSxEMwpBMSxFMixFNCxGMixGNApBMSxFMSxFMyxGMSxGMwpEMyxGMixGMwpENCxGMyxGNApCMyxCNCxFMwpCMixCMyxFMgpEMixGMSxGMgpEMSxGMSxGNApCMSxCNCxFNApCMSxCMixFMQpDNCxGMwpCMyxGMwpDMyxGMwpCNCxGMwpCMyxGMgpDMixGMgpDMyxGMgpCMixGMgpCNCxGNApDMSxGNApCMixGMQpDMSxGMQpDNCxGNApCMSxGNApDMixGMQpCMSxGMSIiIgpsaW5lcyA9IGZyb3plbnNldChmcm96ZW5zZXQobGluZS5zcGxpdCgiLCIpKSBmb3IgbGluZSBpbiBsaW5lcy5zcGxpdCgiXG4iKSkKcG9pbnRzID0gZnJvemVuc2V0KGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxlKGxpbmVzKSkKY250ID0gMApmb3IgYSwgYiwgYyBpbiBpdGVydG9vbHMuY29tYmluYXRpb25zKHBvaW50cywgMyk6CiAgICBpZiAoYW55KGEgaW4gbGluZSBhbmQgYiBpbiBsaW5lIGFuZCBub3QgYyBpbiBsaW5lIGZvciBsaW5lIGluIGxpbmVzKSBhbmQKICAgICAgICBhbnkoYSBpbiBsaW5lIGFuZCBjIGluIGxpbmUgZm9yIGxpbmUgaW4gbGluZXMpIGFuZAogICAgICAgIGFueShiIGluIGxpbmUgYW5kIGMgaW4gbGluZSBmb3IgbGluZSBpbiBsaW5lcykpOgogICAgICAgIGNudCArPSAxCnByaW50KGNudCk=