#!/usr/bin/perl

sub value {
  my ($let, $offset) = @_;
  return ((ord($let) - ord('A') + $offset) % 25);
}

sub sum {
  my @lets = split '', $_[0];
  my $offset = $_[1];
  my $answer = 0;
  foreach (@lets) {
    $answer += value($_, $offset);
  }
  return $answer;
}

sub sums {
  my @answer = ();
  for (0..24) {
    push @answer, sum($_[0], $_);
  }
  return @answer;
}

sub numerically {
  return $a <=> $b;
}

@sofar = ();

sub intersect {
  my %hash = ();
  foreach (unique(@{$_[0]})) {
    $hash{$_}++;
  }
  foreach (unique(@{$_[1]})) {
    $hash{$_}++;
  }
  foreach (keys %hash) {
    delete $hash{$_} if ($hash{$_} == 1);
  }
  return sort numerically keys %hash;
}

sub unique {
  my %hash = ();
  foreach (@_) {
    $hash{$_}++;
  }
  return keys %hash;
}

while ($line = <STDIN>) {
  chomp $line;
  $line =~ tr/a-z/A-Z/;
  @sums = sort numerically sums($line);
  print join(" ",@sums);
  if (@sofar == ()) {
    @sofar = @sums;
  } else {
    @sofar = intersect(\@sums,\@sofar);
  }
  print "\n";
  print join(" ",@sofar);
  print "\n";
}
