#include <bits/stdc++.h>
long len(char *str) {
  long i = 0;
  while (str[i] != '\0') {
    i++;
  }
  return i;
}
int compare(char *X, char *Y) {
  while (*X && *Y) {
    if (*X != *Y) return 0;
    X++;
    Y++;
  }
  return (*Y == '\0');
}
long pos(char *X, char *Y) {
  long i = 0;
  while (X[i] != '\0') {
    if ((X[i] == Y[0]) && compare(X + i, Y)) return i;
    i++;
  }
  return -1;
}
void reverse(char s[]) {
  long length = len(s);
  long c, i, j;
  for (i = 0, j = length - 1; i < j; i++, j--) {
    c = s[i];
    s[i] = s[j];
    s[j] = c;
  }
}
int main() {
  char base[100001];
  char first[101];
  char second[101];
  scanf("%s", base);
  scanf("%s", first);
  scanf("%s", second);
  int forward = 0, backward = 0;
  long forwardFirstPos = pos(base, first);
  long forwardSecondPos = pos(base + forwardFirstPos + len(first), second);
  if (forwardSecondPos >= 0) {
    forwardSecondPos += forwardFirstPos + len(first);
  }
  if (forwardFirstPos >= 0 && forwardSecondPos >= 0 &&
      forwardFirstPos < forwardSecondPos) {
    forward = 1;
  }
  reverse(base);
  long backwardFirstPos = pos(base, first);
  long backwardSecondPos = pos(base + backwardFirstPos + len(first), second);
  if (backwardSecondPos >= 0) {
    backwardSecondPos += backwardFirstPos + len(first);
  }
  if (backwardFirstPos >= 0 && backwardSecondPos >= 0 &&
      backwardFirstPos < backwardSecondPos) {
    backward = 1;
  }
  if (forward == 1 && backward == 1) {
    printf("both\n");
  } else if (forward == 1) {
    printf("forward\n");
  } else if (backward == 1) {
    printf("backward\n");
  } else {
    printf("fantasy\n");
  }
  return 0;
}
