library(stringr)
get_string <- function(i, input) paste0(str_sub(input, start = i + 1), str_sub(input, end = i))
get_min <- function(input) {
d <- data.frame(i = 1:str_length(input))
d$s <- apply(d, 1, get_string, input)
d <- rbind(c(0, input), d)
cat(paste(d[order(d$s)[1], ]), '\n')
}
inputs <- c("onion", "bbaaccaadd", "alfalfa", "weugweougewoiheew", "pneumonoultramicroscopicsilicovolcanoconiosis")
invisible(sapply(inputs, get_min))
bGlicmFyeShzdHJpbmdyKQpnZXRfc3RyaW5nIDwtIGZ1bmN0aW9uKGksIGlucHV0KSBwYXN0ZTAoc3RyX3N1YihpbnB1dCwgc3RhcnQgPSBpICsgMSksIHN0cl9zdWIoaW5wdXQsIGVuZCA9IGkpKQpnZXRfbWluIDwtIGZ1bmN0aW9uKGlucHV0KSB7CiAgZCA8LSBkYXRhLmZyYW1lKGkgPSAxOnN0cl9sZW5ndGgoaW5wdXQpKQogIGQkcyA8LSBhcHBseShkLCAxLCBnZXRfc3RyaW5nLCBpbnB1dCkKICBkIDwtIHJiaW5kKGMoMCwgaW5wdXQpLCBkKQogIGNhdChwYXN0ZShkW29yZGVyKGQkcylbMV0sIF0pLCAnXG4nKQp9CgppbnB1dHMgPC0gYygib25pb24iLCAiYmJhYWNjYWFkZCIsICJhbGZhbGZhIiwgIndldWd3ZW91Z2V3b2loZWV3IiwgInBuZXVtb25vdWx0cmFtaWNyb3Njb3BpY3NpbGljb3ZvbGNhbm9jb25pb3NpcyIpCmludmlzaWJsZShzYXBwbHkoaW5wdXRzLCBnZXRfbWluKSkK