Milky Way 1.0.2, CJam and STXTRM, 19 bytes / 3^3 = 0.703
I imagine there is at least one other language that I could add.
2"3""1"1<<1>;;"2"3; Explanation
Milky Way, 1
In Milky Way, strings are only denoted by pairs of double quotes. A single quote reads input from the command line; if there is none, it pushes an empty string. Greater than and less than signs will rotate the entire stack rightward and leftward, respectively. Finally, a semicolon swaps the top two stack elements.
Here is a stack visualization (stack shown is the result of the listed operation after it has occurred):
["", 0] # default stack ["", 0, ""] # ' # read input from command line ["", 0, "", 2] # 2 # push 2 to the stack ["", 0, "", 2, "3"] # "3" # push "3" to the stack ["", 0, "", 2, "3", "1"] # "1" # push "1" to the stack ["", 0, "", 2, "3", "1", 1] # 1 # push 1 to the stack [0, "", 2, "3", "1", 1, ""] # < # rotate the stack leftwards ["", 2, "3", "1", 1, "", 0] # < # rotate the stack leftwards ["", 2, "3", "1", 1, "", 0, 1] # 1 # push 1 to the stack [1, "", 2, "3", "1", 1, "", 0] # > # rotate the stack rightward [1, "", 2, "3", "1", 1, 0, ""] # ; # swap the top two stack elements [1, "", 2, "3", "1", 1, "", 0] # ; # swap the top two stack elements [1, "", 2, "3", "1", 1, "", 0, ""] # ' # read input from command line [1, "", 2, "3", "1", 1, "", 0, "", 2] # 2 # push 2 to the stack [1, "", 2, "3", "1", 1, "", 0, "", 2, "3"] # "3" # push "3" to the stack [1, "", 2, "3", "1", 1, "", 0, "", "3", 2] # ; # swap the top two stack elements CJam, 2
In CJam, strings are also denoted by double quote pairs. A single quote pushes the character code of the following character. When a character code is output, it is output as its corresponding character. Greater-than and less-than signs act as expected, evaluating the order of the top two stack elements. Finally, a semicolon discards the top stack element. On termination of the program, the contents of the stack are output.
Here is a stack visualization (stack shown is the result of the listed operation after it has occurred):
[] # default stack ['2] # '2 # push the character code of "2" to the stack ['2, "3"] # "3" # push "3" to the stack ['2, "3", "1"] # "1" # push "1" to the stack ['2, "3", "1", 1] # 1 # push 1 to the stack ['2, "3", "1"] # < # leave the greater of the top two stack elements on the stack ['2, 0] # < # leave the greater of the top two stack elements on the stack ['2, 0, 1] # 1 # push 1 to the stack ['2, 1] # > # leave the lesser of the top two stack elements on the stack ['2] # ; # pop the top stack value [] # ; # pop the top stack value ['2] # '2 # push the character code of "2" to the stack ['2, "3"] # "3" # push "3" to the stack ['2] # ; # pop the top stack item STXTRM, 3
In MSM, anything that is not an operator is pushed to the stack as a character. A semicolon duplicates the top stack element. The program continues until there are no more operators, or there is a single element on the stack.
The final character on the stack is 3, which is duplicated by the final operator. 3 is the topmost element at the end of the program, so it is output.