Problem:
Max Score: 250 Points

Problem Statement

Mr.X, who the handle name is T, looked at the list which written N handle names, S_1, S_2, ..., S_N.

But he couldn't see some parts of the list. Invisible part is denoted ?.

Please calculate all possible index of the handle name of Mr.X when you sort N+1 handle names (S_1, S_2, ..., S_N and T) in lexicographical order.

Note: If there are pair of people with same handle name, either one may come first.

Input

The input is given from standard input in the following format.

N
S_1
S_2
:
S_N
T

Output

Calculate the possible index and print in sorted order. The output should be separated with a space. Don't print a space after last number.

Put a line break in the end.

Constraints

1 ≤ N ≤ 10000

1 ≤ |S_i|, |T| ≤ 20 (|A| is the length of A.)

S_i consists from lower-case alphabet and ?.

T consists from lower-case alphabet.

Scoring

Subtask 1 [ 130 points ]

There are no ?'s.

Subtask 2 [ 120 points ]

There are no additional constraints.

Sample Input 1

2
tourist
petr
e

Sample Output 1

1

There are no invisible part, so there are only one possibility.
The sorted handle names are e, petr, tourist, so e comes first.

Sample Input 2

2
?o?r?s?
?et?
e

Solution in Ruby (2.3.3) (judge verdict: Accepted)

n=gets.to_i
a=[]
n.times do
  a<< gets.chomp
end
s=gets.chomp
r=[0,0]
n.times do |i|
  ([a[i].length,s.length].min).times do |j|
    if a[i][j]==??
      if s[j]!=?z && s[j]!=?a
        r[1]+=1
        break
      else
        if [a[i].length,s.length].min==j+1
          if s.length>a[i].length
            r[0]+=1
          elsif s.length==a[i].length
            r[1]+=1
          end
        end
      end
    elsif a[i][j]>s[j]
      break
    elsif a[i][j]<s[j]
      r[0]+=1
      break
    elsif a[i][j]==s[j]
      if [a[i].length,s.length].min==j+1
        if s.length>a[i].length
          r[0]+=1
        elsif s.length==a[i].length
          r[1]+=1
        end
      end
    end
  end
end
puts [*r[0]+1..r[0]+r[1]+1].* " "