using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
public static void Main()
{
var list1 = new List<int>() { 1, 2, 3, 4 };
var list2 = new List<int>() { 2, 3, 5, 6, 7, 8 };
var list3 = new List<int>() { 3, 4, 5 };
var all = new HashSet<int>(list1.Concat(list2).Concat(list3));
int?[] l1Result = new int?[all.Count];
int?[] l2Result = new int?[all.Count];
int?[] l3Result = new int?[all.Count];
int idx = 0;
foreach (int val in all)
{
if (list1.BinarySearch(val) >= 0) l1Result[idx] = val;
if (list2.BinarySearch(val) >= 0) l2Result[idx] = val;
if (list3.BinarySearch(val) >= 0) l3Result[idx] = val;
idx += 1;
}
Console.WriteLine(string.Join("\t", l1Result.Select(i => !i.HasValue ? "NULL" : i.Value.ToString()).ToArray()));
Console.WriteLine(string.Join("\t", l2Result.Select(i => !i.HasValue ? "NULL" : i.Value.ToString()).ToArray()));
Console.WriteLine(string.Join("\t", l3Result.Select(i => !i.HasValue ? "NULL" : i.Value.ToString()).ToArray()));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICAgICAgdmFyIGxpc3QxID0gbmV3IExpc3Q8aW50PigpIHsgMSwgMiwgMywgNCB9OwogICAgICAgIHZhciBsaXN0MiA9IG5ldyBMaXN0PGludD4oKSB7IDIsIDMsIDUsIDYsIDcsIDggfTsKICAgICAgICB2YXIgbGlzdDMgPSBuZXcgTGlzdDxpbnQ+KCkgeyAzLCA0LCA1IH07CiAgICAgICAgdmFyIGFsbCA9IG5ldyBIYXNoU2V0PGludD4obGlzdDEuQ29uY2F0KGxpc3QyKS5Db25jYXQobGlzdDMpKTsKCiAgICAgICAgaW50P1tdIGwxUmVzdWx0ID0gbmV3IGludD9bYWxsLkNvdW50XTsKICAgICAgICBpbnQ/W10gbDJSZXN1bHQgPSBuZXcgaW50P1thbGwuQ291bnRdOwogICAgICAgIGludD9bXSBsM1Jlc3VsdCA9IG5ldyBpbnQ/W2FsbC5Db3VudF07CiAgICAgICAgCiAgICAgICAgaW50IGlkeCA9IDA7CiAgICAgICAgZm9yZWFjaCAoaW50IHZhbCBpbiBhbGwpCiAgICAgICAgewogICAgICAgICAgICBpZiAobGlzdDEuQmluYXJ5U2VhcmNoKHZhbCkgPj0gMCkgbDFSZXN1bHRbaWR4XSA9IHZhbDsKICAgICAgICAgICAgaWYgKGxpc3QyLkJpbmFyeVNlYXJjaCh2YWwpID49IDApIGwyUmVzdWx0W2lkeF0gPSB2YWw7CiAgICAgICAgICAgIGlmIChsaXN0My5CaW5hcnlTZWFyY2godmFsKSA+PSAwKSBsM1Jlc3VsdFtpZHhdID0gdmFsOwoKICAgICAgICAgICAgaWR4ICs9IDE7CiAgICAgICAgfQoKICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdHJpbmcuSm9pbigiXHQiLCBsMVJlc3VsdC5TZWxlY3QoaSA9PiAhaS5IYXNWYWx1ZSA/ICJOVUxMIiA6IGkuVmFsdWUuVG9TdHJpbmcoKSkuVG9BcnJheSgpKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIlx0IiwgbDJSZXN1bHQuU2VsZWN0KGkgPT4gIWkuSGFzVmFsdWUgPyAiTlVMTCIgOiBpLlZhbHVlLlRvU3RyaW5nKCkpLlRvQXJyYXkoKSkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCJcdCIsIGwzUmVzdWx0LlNlbGVjdChpID0+ICFpLkhhc1ZhbHVlID8gIk5VTEwiIDogaS5WYWx1ZS5Ub1N0cmluZygpKS5Ub0FycmF5KCkpKTsKICAgIH0KfQo=