using System;
class HelloWorld
{
  static void Main()
  {
    Console.Write("Ievadiet teikumu: ");
    string teik = Console.ReadLine();
    string teksts = teik;
    teik = teik.ToLower();
    string[] sam_v = teik.Split(' ');
    // Console.Write("Elemntus skaits "+sam_v.Length);
    Console.Write("Samainiti vardi: ");
    
    // Pirma dala kur tiek samainiti vardi un vardi ar samainitiem burtiem
    
    // cikls lai samainit vardus
    for (int i = 1; i <= sam_v.Length; i++)
    {
        if (i == 1) // Ja tas ir pirmais vards tad tas tiek nofarmotets lietojot so ciklu (Piem. Nnnn)
        {
            string pir_v = (sam_v[sam_v.Length - i].ToUpper()+" "); // tiek izvelets pedejais vards atnemot no elemntu skaita 1
            Console.Write(pir_v[0]); 
            pir_v = pir_v.ToLower();
            for (int j = 1; j <= pir_v.Length-1; j++) // tiek izvaditi char no pir_v string
            {
                Console.Write(pir_v[j]); 
            }
        }
        else
        {
            Console.Write(sam_v[sam_v.Length - i]+" "); // tiek izvaditi samainitie vardi
        }
        
        // Teikums tiek apgriezts lietojot char massivu

    }
     for (int i = 0; i < sam_v.Length; i++)
        {
            char[] sam_burt = sam_v[i].ToCharArray();
            Array.Reverse(sam_burt);
            sam_v[i] = new string(sam_burt);
        }
        Console.WriteLine(); 
        
        // Ta pasi ka samainati vardi, bet tikai ar saminitiem burtiem un vardiem
        
        Console.Write("Samainiti burti vardos: "); 
    for (int i = 1; i <= sam_v.Length; i++)
    {
        if (i == 1)
        {
            string pir_v = (sam_v[sam_v.Length - i].ToUpper()+" ");
            Console.Write(pir_v[0]); 
            pir_v = pir_v.ToLower();
            for (int j = 1; j <= pir_v.Length-1; j++)
            {
                Console.Write(pir_v[j]); 
            }
        }
        else
        {
            Console.Write(sam_v[sam_v.Length - i]+" "); // tiek izvaditi vardi ar samainitiem burtiem
        }
    }
    Console.WriteLine(); 
    
    // otra dala kur teikums tiek izvadits kaut-kada neparasta formata
    
    // cikls ja teksts dalas ar 2
    if (teksts.Length % 2 == 0)
    {
        int center = teksts.Length / 2 - 1;
        
        for (int r = 0; r <= center; r++)
        {
            // veido augso dalu
            for (int i = 0;i < teksts.Length;i++)
            {
                // tiek parbaudits vai elements atrodas noteikta intervala no videjiem elementiem (Intervals atkarigs no rindas)
            if ((i >= center - r) && (i <= center + r + 1)) 
            {
                // ja atrodas ta intervala
                Console.Write(teksts[i]);
            }
            else
            {
                // ja NEatrodas ta intervala
                Console.Write(" ");
            }
            }
            Console.WriteLine();
        }
            // veido apaksejo dalu
        for (int r = 0;r < center;r++) {
            for (int i = 0;i < teksts.Length;i++) {
                // tiek parbaudits vai elements NEatrodas noteikta intervala no videjiem elementiem (Intervals atkarigs no rindas)
                if (!((i >= center - r) && (i <= center + r + 1))) {
                    Console.Write(teksts[i]);
                }
                else {
                    Console.Write(" ");
                }
            }
            Console.WriteLine();
        }
        
        
    // cikls ja teksts nedalas ar 2
    }
    else {
        int center = teksts.Length / 2;
        
        for (int r = 0;r <= center;r++)
        {
            // veido augso dalu
            for (int i = 0;i < teksts.Length;i++)
            {
                // tiek parbaudits vai elements atrodas noteikta intervala no videja elementa (Intervals atkarigs no rindas)
                if ((i >= center - r) && (i <= center + r))
                {
                    Console.Write(teksts[i]);
                }
                else
                {
                    Console.Write(" ");
                }
            }
            Console.WriteLine();
        }
        
        for (int r = 0;r < center;r++) {
             // veido apaksejo dalu
            for (int i = 0;i < teksts.Length;i++)
            {
                // tiek parbaudits vai elements NEatrodas noteikta intervala no videja elementa (Intervals atkarigs no rindas)
                if (!((i >= center - r) && (i <= center + r))) {
                    Console.Write(teksts[i]);
                }
                else {
                    Console.Write(" ");
                }
            }
            Console.WriteLine();
        }
    } 
    
    //tresa dala kur ir izvadits paralelograms??
    
    
    // tiek veidota augsa dala
    for (int i = 1;i < teksts.Length;i++)
    {
        // atkrariba no iteracijsa tuksums samazinas
        for (int r = 0; r < teksts.Length-i;r++)
        {
            
            Console.Write(" ");
        }
        // atkrariba no iteracijsa burtu skaits palielinas
        for (int r = teksts.Length-i; r < teksts.Length;r++)
        {
            Console.Write(teksts[r]);
        }
        Console.WriteLine();
    }
    
    //tiek veidota apaksaja dala
    for (int i = 1;i <= teksts.Length;i++)
    {
        // atkrariba no iteracijsa burtu skaits samazinas
        for (int r = 0;r <= teksts.Length-i;r++)
        {
            Console.Write(teksts[r]);
        }
        Console.WriteLine();
    }
  }
}