import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine().trim();
String[] parts = input.split(" ");
int height = Integer.parseInt(parts[0]);
String path = parts.length > 1 ? parts[1] : "";
BalancedTree balancedTree = new BalancedTree(height);
int result = balancedTree.findNodeLabel(height, path);
System.out.println(result);
scanner.close();
}
}
class BalancedTree {
private TreeNode root;
public BalancedTree(int height) {
root = constructTree(height);
}
private TreeNode constructTree(int height) {
int totalNodes = (1 << (height + 1)) - 1;
return buildTree(1, totalNodes);
}
private TreeNode buildTree(int start, int end) {
if (start > end) return null;
int mid = (start + end) / 2;
TreeNode node = new TreeNode(mid);
node.left = buildTree(start, mid - 1);
node.right = buildTree(mid + 1, end);
return node;
}
public int findNodeLabel(int height, String path) {
int cur = 1;
for (char c : path.toCharArray()) {
cur = cur * 2 + (c == 'R' ? 1 : 0);
}
int totalNodes = (1 << (height + 1)) - 1;
return totalNodes - cur + 1;
}
}
class TreeNode {
int value;
TreeNode left, right;
TreeNode(int value) {
this.value = value;
this.left = this.right = null;
}
}