using System.Collections.Generic;
using System.Text.RegularExpressions;
public static string additionaltags = "#gelbooru #pixiv #anime #animeart #animeartwork #animegirl #artist ";
public static string[] bannedtags = { "#cleavage ", "#cleavage_cutout ", "#areolae ", "#collarbone ", "#panties ", "#ass_focus ", "#closed_mouth ", "#breasts ", "#topless ", "#innertube ", "#looking_at_viewer ", "#hair_ornament ", "#eyebrows_visible_through_hair ", "#fake_animal_ears ", "#arm_support ", "#blunt_bags ", "#bralines ", "#heart_cutout ", "#paw_print ", "#paw_print_soles ", "#paw_print_socks ", "one_eye_closed ", "#print_legwear ", "#tongue_out ", "#large_breasts ", "#leaning_forward ", "#ass ", "#blurry_background " };
public static bool doesExist = false;
public static string data;
public static void Main()
data = Console.ReadLine();
data = Regex.Replace(data, @"[\d-]", string.Empty);
Console.WriteLine(Description(GetData("Artist")[0], Tag(GetData("Tag"))));
Console.WriteLine(Tag(GetData("Tag")).Count(c => c.Equals('#')));
public static string Description(string artist, string tag)
return string.Format("⠀\nArtist: {0}\n⠀\nLink: \n{1}⠀\nTags: {{ {2}}}", artist, doesExist ? "(Exists 18+ version)\n" : "", tag);
public static string Tag(List<string> list)
string result = Hashtag(GetData("Artist")[0]) + additionaltags;
for (int a = 0; a < list.Count; a++)
result += Hashtag(list[a]);
return WithoutColors(WithoutBannedTags(result));
public static string Hashtag(string str)
str = str.Substring(0, str.Length - 1).Replace(' ', '_');
return string.Format('#' + str + ' ');
public static string WithoutBannedTags(string str)
foreach (string s in bannedtags)
str = str.Replace(s, "");
public static string WithoutColors(string str)
string[] colors = { "black", "white", "red", "orange", "blue", "pink", "yellow", "brown", "green", "gray", "purple" };
foreach (string s in colors)
int index = str.IndexOf(s);
while (index + count < str.Length && str[index + count] != '#')
str = str.Remove(index - 1, count + 1);
public static List<string> GetData(string name)
List<string> result = new List<string>();
int index = data.IndexOf(name) + name.Length;
for (; index < data.Length && !Char.IsUpper(data[index]); index++)
result.Add(data[index].ToString());
throw new Exception(string.Format("Error: {0} doesn't exist", name));