พจนานุกรมของ Snuke มีคำที่แตกต่างกัน $n$ คำ ได้แก่ $s_1, \ldots, s_n$ แต่ละคำประกอบด้วยตัวอักษรภาษาอังกฤษพิมพ์เล็ก คำเหล่านี้เรียงตามลำดับพจนานุกรม กล่าวคือ $s_1 < \cdots < s_n$ น่าเสียดายที่คุณอ่านอักขระบางตัวในพจนานุกรมของเขาไม่ออก คุณจึงแทนอักขระเหล่านั้นด้วย «?» จงคำนวณจำนวนวิธีแทน «?» แต่ละตัวด้วยตัวอักษรภาษาอังกฤษพิมพ์เล็กเพื่อให้ได้พจนานุกรมที่ถูกต้อง โดยหาคำตอบโมดูโล $1\,000\,000\,007$
ข้อมูลนำเข้า
บรรทัดแรกของข้อมูลนำเข้ามีจำนวนเต็มหนึ่งจำนวน $n$ ($1 \le n \le 50$) ตามด้วยอีก $n$ บรรทัด โดยบรรทัดที่ $i$ มีคำ $s_i$ ($1 \le |s_i| \le 20$ อักขระแต่ละตัวใน $s_i$ เป็นตัวอักษรภาษาอังกฤษพิมพ์เล็กหรือ «?»)
ข้อมูลส่งออก
แสดงคำตอบ
ตัวอย่าง
ข้อมูลนำเข้า 1
2 ?sum??mer c??a??mp
ข้อมูลส่งออก 1
703286064
ข้อมูลนำเข้า 2
3 snuje ????e snule
ข้อมูลส่งออก 2
1