using System;
using System.Globalization;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
var input = "dbo.xyx.v1.UserDefinedFunction";
string[] tokens = input.Split('.');
int midIndex = (tokens.Length - 1) / 2;
IEnumerable<int> intermediateIndices = midIndex % 2 == 0
? new[] { midIndex }
: new[] { midIndex, midIndex + 1 };
string intermediate = string.Join(".", tokens.Where((t, i) => intermediateIndices.Contains(i)).ToArray());
Console.Write(intermediate);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewogCglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7IAogICAgICAgIHZhciBpbnB1dCA9ICJkYm8ueHl4LnYxLlVzZXJEZWZpbmVkRnVuY3Rpb24iOwogICAgICAgIHN0cmluZ1tdIHRva2VucyA9IGlucHV0LlNwbGl0KCcuJyk7CiAgICAgICAgaW50IG1pZEluZGV4ID0gKHRva2Vucy5MZW5ndGggLSAxKSAvIDI7CiAgICAgICAgSUVudW1lcmFibGU8aW50PiBpbnRlcm1lZGlhdGVJbmRpY2VzID0gbWlkSW5kZXggJSAyID09IDAKICAgICAgICAgICAgPyBuZXdbXSB7IG1pZEluZGV4IH0KICAgICAgICAgICAgOiBuZXdbXSB7IG1pZEluZGV4LCBtaWRJbmRleCArIDEgfTsKICAgICAgICBzdHJpbmcgaW50ZXJtZWRpYXRlID0gc3RyaW5nLkpvaW4oIi4iLCB0b2tlbnMuV2hlcmUoKHQsIGkpID0+IGludGVybWVkaWF0ZUluZGljZXMuQ29udGFpbnMoaSkpLlRvQXJyYXkoKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZShpbnRlcm1lZGlhdGUpOwoJfQp9