import java.util.Scanner;
class TreeNode {
int label;
TreeNode left;
TreeNode right;
TreeNode(int label) {
this.label = label;
this.left = null;
this.right = null;
}
}
public class Main {
static TreeNode buildTree(int height, int[] currentLabel) {
if (height < 0) {
return null;
}
TreeNode node = new TreeNode(currentLabel[0]);
currentLabel[0]--;
node.right = buildTree(height - 1, currentLabel);
node.left = buildTree(height - 1, currentLabel);
return node;
}
static int searchNode(TreeNode root, String road) {
TreeNode currentNode = root;
for (int i = 0; i < road.length(); i++) {
if (road.charAt(i) == 'L' || road.charAt(i) == 'l') {
currentNode = currentNode.left;
} else if (road.charAt(i) == 'R' || road.charAt(i) == 'r') {
currentNode = currentNode.right;
}
}
return currentNode.label;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int height = scanner.nextInt();
scanner.nextLine(); // Consume the newline after the height
String road = scanner.nextLine().trim();
int[] currentLabel = { (int) Math.pow(2, height + 1) - 1 };
TreeNode root = buildTree(height, currentLabel);
System.out.println(searchNode(root, road));
}
}