#include <bits/stdc++.h>
long long ways[100001][2];
char start[10000];
char end[10000];
char shifted[10000];
void shift(int s, int l) {
  for (int i = 0; i < l; i++) {
    shifted[(i + s) % l] = start[i];
  }
}
int main() {
  for (int i = 0; i < 10000; i++) shifted[i] = 0;
  scanf("%s", start);
  scanf("%s", end);
  int k;
  scanf("%d", &k);
  int l = strlen(start);
  ways[0][0] = 1;
  ways[0][1] = 0;
  for (int i = 1; i <= k; i++) {
    ways[i][0] = ways[i - 1][1] * (l - 1) % 1000000007;
    ways[i][1] =
        (ways[i - 1][1] * (l - 2) % 1000000007 + ways[i - 1][0]) % 1000000007;
  }
  long long tot = 0;
  if (strcmp(start, end) == 0) tot += ways[k][0];
  for (int i = 1; i < l; i++) {
    shift(i, l);
    if (strcmp(shifted, end) == 0) {
      tot += ways[k][1];
      tot %= 1000000007;
    }
  }
  int toti = tot;
  printf("%d\n", toti);
  return 0;
}
