using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
var input = "AX,TR,AR,XC,ZC,MM,XM,XB,XT,BV,ZV,XR,DP,DR,DT,DX,RD,RR,RT,RX,RK,IF,XZ,KL,KX,CJ,KT,KZ,DX,DZ,HD,VN,GL,ZL,GG,MX,MZ,MH,HR,XH,ZH,NT,AS,AZ,PH,PX,KS,VX,SM,KV,SB,OT,SZ,SV,XV,TM,TZ,DD,GZ,ZS,MS,TC,VS,SX";
var part = input.Split(',').GroupBy(x=> x[0]).Select(g=> new {Key=g.Key, Variations= g.Select(x=>x[1]).OrderBy(x=>x)} );
var sub = part.OrderBy(x=> x.Key).Select(x => $"{x.Key}[{string.Join("", x.Variations)}]");
var final = String.Join("|",sub);
Console.WriteLine(final);
}