#include <bits/stdc++.h>
using namespace std;
long long k, dp[100005][2];
char a[1005], b[1005];
int main() {
  scanf("%s %s", a, b);
  scanf("%lld", &k);
  if (strcmp(a, b) == 0)
    dp[0][0] = 1;
  else
    dp[0][1] = 1;
  long long x = 0, len = strlen(a);
  for (int i = 0, j; i < len; i++) {
    for (j = 0; j < len; j++)
      if (a[(i + j) % len] != b[j]) break;
    if (j == len) x++;
  }
  for (int i = 0; i < k; i++) {
    dp[i + 1][0] = (x * dp[i][1] + (x - 1) * dp[i][0]) % 1000000007;
    dp[i + 1][1] =
        ((len - x) * dp[i][0] + (len - x - 1) * dp[i][1]) % 1000000007;
  }
  printf("%lld\n", dp[k][0]);
  return 0;
}
