统一命名规范
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

你所在的公司刚刚招收了几位程序员,然而这些程序员之前在不同的公司工作,所以他们习惯的变量命名规范可能存在差异,需要让他们都习惯公司要求的命名规范,然而这样可能会降低他们的工作效率。

你的上司找到了你,希望你能编写统一命名规范的程序,确保效率不降低的前提下,统一项目变量的命名规范。

现在已经知道公司中只会存在以下三种命名规范:

  • 驼峰(Camel),单词之间没有分隔符,第一个单词首字母小写,其余单词首字母大写,其余字母小写,例如 "userName";
  • 帕斯卡(Pascal),单词之间没有分隔符,所有单词首字母大写,其余字母小写,例如 "UserName" ;
  • 下划线(Snake),单词之间用下划线 "_" 分隔,所有字母小写,例如 "user_name" 。

输入描述:

第一行输入一个整数 N(1\le N\le 100) 和一个字符串 T ,分别表示变量名的数量和最后统一的命名规范,其中命名规范只存在 "Camel","Pascal","Snake" 三种。

接下来 N 行每行输入一个只包含大小写字母和下划线的字符串 S_i(1\le |S_i| \le 50) ,表示第 i 个变量名,命名方式为 "Camel","Pascal","Snake" 中的一种。

输出描述:

每一行输出一个字符串,表示第 i 个变量统一成命名规范 T 后的变量名。
示例1

输入

复制
4 Snake
userName
Password
background_color
text

输出

复制
user_name
password
background_color
text