import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Set;
import java.util.TreeSet;
public class Main {
Set<String> tagsSet = new TreeSet<>();
while ((line = br.readLine()) != null) {
line = line.trim();
if (line.isEmpty()) continue;
String[] parts
= line.
split("\t",
2);
if (!movieId.equals(currentMovie)) {
if (currentMovie != null) {
System.
out.
println(currentMovie
+ "\t" + String.
join(",", tagsSet
)); }
currentMovie = movieId;
tagsSet.clear();
}
tagsSet.add(tag);
}
if (currentMovie != null) {
System.
out.
println(currentMovie
+ "\t" + String.
join(",", tagsSet
)); }
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOwppbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKaW1wb3J0IGphdmEudXRpbC5TZXQ7CmltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CiAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKFN5c3RlbS5pbikpOwogICAgICAgIFN0cmluZyBjdXJyZW50TW92aWUgPSBudWxsOwogICAgICAgIFNldDxTdHJpbmc+IHRhZ3NTZXQgPSBuZXcgVHJlZVNldDw+KCk7CiAgICAgICAgU3RyaW5nIGxpbmU7CgogICAgICAgIHdoaWxlICgobGluZSA9IGJyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOwogICAgICAgICAgICBpZiAobGluZS5pc0VtcHR5KCkpIGNvbnRpbnVlOwoKICAgICAgICAgICAgU3RyaW5nW10gcGFydHMgPSBsaW5lLnNwbGl0KCJcdCIsIDIpOwogICAgICAgICAgICBTdHJpbmcgbW92aWVJZCA9IHBhcnRzWzBdOwogICAgICAgICAgICBTdHJpbmcgdGFnID0gcGFydHNbMV07CgogICAgICAgICAgICBpZiAoIW1vdmllSWQuZXF1YWxzKGN1cnJlbnRNb3ZpZSkpIHsKICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TW92aWUgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjdXJyZW50TW92aWUgKyAiXHQiICsgU3RyaW5nLmpvaW4oIiwiLCB0YWdzU2V0KSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjdXJyZW50TW92aWUgPSBtb3ZpZUlkOwogICAgICAgICAgICAgICAgdGFnc1NldC5jbGVhcigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRhZ3NTZXQuYWRkKHRhZyk7CiAgICAgICAgfQogICAgICAgIGlmIChjdXJyZW50TW92aWUgIT0gbnVsbCkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oY3VycmVudE1vdmllICsgIlx0IiArIFN0cmluZy5qb2luKCIsIiwgdGFnc1NldCkpOwogICAgICAgIH0KICAgIH0KfQo=