<?php
function CreateAmida($org)
{
	if (!ctype_alnum($org) ||
		count(array_unique(str_split($org))) != count(str_split($org))) {
		return NULL;
	}
	$bridge_num = strlen($org)-1;
	$p = $org;
	$step = array();
	while (1) {
		$chg = FALSE;
		$step_buf = array_fill(0, $bridge_num, ' ');
		for ($i = 0; $i < $bridge_num; $i++) {
			if ($p[$i] > $p[$i+1]) {
				$sub = array($p[$i]=>$p[$i+1], $p[$i+1]=>$p[$i]);
				$p = strtr($p, $sub);
				$step_buf[$i] = '-';
				$i++;
				$chg = TRUE;
			}
		}
		if ($chg) {
			$step[] = '|'.implode('|', $step_buf).'|';
		} else {
			break;
		}
	}
	$res = implode(' ', str_split($p))."\n";
	$res .= implode("\n", array_reverse($step))."\n";
	$res .= implode(' ', str_split($org))."\n";
	return $res;
}
?>
