# Pyth, <s>23</s> 22 bytes *1 byte saved by [FryAmTheEggman](https://codegolf.stackexchange.com/questions/69127/convert-salesforce-15-character-id-to-18-character#comment168306_69131).* sm@s+JrG1U6i}RJ_d2c3pz [Try it online.][try] [Test suite.][test] This might be the first time I've used the `p`rint instruction in golfing. ### Explanation JrG1 save uppercase alphabet in J z input string p print it without newline c3 split into 3 parts m d for each part: _ reverse }R map characters to being in J uppercase alphabet (saved in J) i 2 parse list of bools as binary @ get correct item of J uppercase alphabet (saved in J) s+ U6 add nums 0-5 to it s concatenate and print [try]: http://pyth.herokuapp.com/?code=sm%40s%2BJrG1U6i%7DRJ_d2c3pz&input=a0RE000000IJmcN&debug=0 [test]: http://pyth.herokuapp.com/?code=sm%40s%2BJrG1U6i%7DRJ_d2c3pz&test_suite=1&test_suite_input=a01M00000062mPg%0A001M000000qfPyS%0Aa0FE000000D6r3F%0A0F9E000000092w2%0Aaaaaaaaaaaaaaaa%0AAbCdEfGhIjKlMnO&debug=0