Two boys decided to compete in text typing on the site "Key races". During the competition, they have to type a text consisting of s characters. The first participant types one character in v1 milliseconds and has ping t1 milliseconds. The second participant types one character in v2 milliseconds and has ping t2 milliseconds.

If connection ping (delay) is t milliseconds, the competition passes for a participant as follows: 

  1. Exactly after t milliseconds after the start of the competition the participant receives the text to be entered. 
  2. Right after that he starts to type it. 
  3. Exactly t milliseconds after he ends typing all the text, the site receives information about it. 



The winner is the participant whose information on the success comes earlier. If the information comes from both participants at the same time, it is considered that there is a draw.

Given the length of the text and the information about participants, determine the result of the game.

Input

The first line contains five integers s, v1, v2, t1, t2 (1 ≤ s, v1, v2, t1, t2 ≤ 1000) — the number of characters in the text, the time of typing one character for the first participant, the time of typing one character for the the second participant, the ping of the first participant and the ping of the second participant.

Output

If the first participant wins, print "First". If the second participant wins, print "Second". In case of a draw print "Friendship".

Examples

Input

5 1 2 1 2


Output

First


Input

3 3 1 1 1


Output

Second


Input

4 5 3 1 5


Output

Friendship

Note

In the first example, information on the success of the first participant comes in 7 milliseconds, of the second participant — in 14 milliseconds. So, the first wins.

In the second example, information on the success of the first participant comes in 11 milliseconds, of the second participant — in 5 milliseconds. So, the second wins.

In the third example, information on the success of the first participant comes in 22 milliseconds, of the second participant — in 22 milliseconds. So, it is be a draw.
 import java.io.*;
    import java.math.*;
    import java.util.*;
    import javax.print.attribute.SetOfIntegerSyntax;
     
    public class Main {
        private static InputStream stream;
        private static byte[] buf = new byte[1024];
        private static int curChar;
        private static int numChars;
        private static SpaceCharFilter filter;
        private static PrintWriter pw;
        private static long count = 0,mod=1000000007,max=0;
        private static TreeSet<Integer>ts[]=new TreeSet[200000];
     
        public static void main(String args[]) throws Exception {
            InputReader(System.in);
            pw = new PrintWriter(System.out); 
            new Thread(null ,new Runnable(){
               public void run(){
                   try{
                       soln();
                       pw.close();
                   } catch(Exception e){
                       e.printStackTrace();
                   }
               }
           },"1",1<<26).start();
        }
        //----------------------------------------My Code------------------------------------------------//
        public static class Participant implements Comparable<Participant>{
            String name;
            int score;
            Participant(String s, int n){
                this.name=s;
                this.score=n;
            }
            @Override
            public int compareTo(Participant o){
                if(o.score<score){
                    return 1;
                }
                else if(o.name.equals(this.name)) return 0;
                else{
                    return -1;
                }
            }
            @Override
            public boolean equals(Object obj){
                if(obj==null) return false;
                if(obj.getClass()!=this.getClass()) return false;
                Participant prt=(Participant) obj;
                if(this.name.equals(prt.name)) return true;
                return false;
            }
            @Override
            public int hashCode(){
                return this.name.hashCode();
            }
        }
        public static class Comp<T> implements Comparator<Participant>{
            @Override
            public int compare(Participant p1, Participant p2) {    
                if(p1.score<p2.score) return 1;
                else
                return 0;
            }
        }
       
        private static void soln() {
        	int s=nextInt();
        	int v1=nextInt();
        	int v2=nextInt();
        	int t1=nextInt();
        	int t2=nextInt();
        	
        	int a1=(2*t1)+(s*v1);
        	int a2=(2*t2)+(s*v2);
        	if(a1==a2){
        		pw.println("Friendship");
        	}
        	else if(a1<a2){
        		pw.println("First");
        	}
        	else pw.println("Second");
        }
        static int ver=-1;
        private static void dfs(int root,LinkedList<Integer>[] adj,boolean[] visited){
        	visited[root]=true;
        	boolean flag=false;
        	for(int x:adj[root]){
        		if(!visited[x]){
        			count++;
        			//pw.println(count+" after incr at node " +root);
        			dfs(x,adj,visited);
        			flag=true;
        			//pw.println(count+" at node "+root);
        		}
        	}
        	if(!flag) {
        		long prev=max;
        		max=Math.max(count, max);
        		if(prev!=max){
        			ver=root;
        			//arr[root]=(int)Math.max(arr[root], max);
        		}
        	}
        	count--;
        	
        	visited[root]=false;
        }
        public static int fact(int n){
            int ans=1;
            for(int i=1;i<=n;i++) ans=(ans*i)%1000000007;
            return ans;
        }
        //----------------------------------------THE END----------------------------------------------------------//            
     
        static class Pair implements Comparable<Pair>{
     
           int t,cost;
            Pair(int idx,int k){
                this.cost=idx;
                this.t=k;
                //this.l=l;
            }
            @Override
            public int compareTo(Pair o) {
               return 0;
                
            }
           
        }
     
        public static long gcd(long x, long y) {
            if (x % y == 0)
                return y;
            else
                return gcd(y, x % y);
        }
        
        private static int BinarySearch(int a[], int low, int high, int target) {
            if (low > high)
                return -1;
            int mid = low + (high - low) / 2;
            if (a[mid] == target)
                return mid;
            if (a[mid] > target)
                high = mid - 1;
            if (a[mid] < target)
                low = mid + 1;
            return BinarySearch(a, low, high, target);
        }
        
        public static String reverseString(String s) {
            StringBuilder sb = new StringBuilder(s);
            sb.reverse();
            return (sb.toString());
        }
     
        
        
        public static long pow(long n, long p, long m) {
            long result = 1;
            if (p == 0)
                return 1;
            if (p == 1)
                return n;
            while (p != 0) {
                if (p % 2 == 1)
                    result *= n;
                if (result >= m)
                    result %= m;
                p >>= 1;
                n *= n;
                if (n >= m)
                    n %= m;
            }
            return result;
        }
     
        public static long pow(long n, long p) {
            long result = 1;
            if (p == 0)
                return 1;
            if (p == 1)
                return n;
            while (p != 0) {
                if (p % 2 == 1)
                    result *= n;
                p >>= 1;
                n *= n;
            }
            return result;
     
        }
     
         public static int[] radixSort(int[] f) {
            int[] to = new int[f.length];
            {
                int[] b = new int[65537];
                for (int i = 0; i < f.length; i++)
                    b[1 + (f[i] & 0xffff)]++;
                for (int i = 1; i <= 65536; i++)
                    b[i] += b[i - 1];
                for (int i = 0; i < f.length; i++)
                    to[b[f[i] & 0xffff]++] = f[i];
                int[] d = f;
                f = to;
                to = d;
            }
            {
                int[] b = new int[65537];
                for (int i = 0; i < f.length; i++)
                    b[1 + (f[i] >>> 16)]++;
                for (int i = 1; i <= 65536; i++)
                    b[i] += b[i - 1];
                for (int i = 0; i < f.length; i++)
                    to[b[f[i] >>> 16]++] = f[i];
                int[] d = f;
                f = to;
                to = d;
            }
            return f;
        }
     
        public static int nextPowerOf2(final int a) {
            int b = 1;
            while (b < a) {
                b = b << 1;
            }
            return b;
        }
     
        public static boolean PointInTriangle(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8) {
            int s = p2 * p5 - p1 * p6 + (p6 - p2) * p7 + (p1 - p5) * p8;
            int t = p1 * p4 - p2 * p3 + (p2 - p4) * p7 + (p3 - p1) * p8;
     
            if ((s < 0) != (t < 0))
                return false;
     
            int A = -p4 * p5 + p2 * (p5 - p3) + p1 * (p4 - p6) + p3 * p6;
            if (A < 0.0) {
                s = -s;
                t = -t;
                A = -A;
            }
            return s > 0 && t > 0 && (s + t) <= A;
        }
     
        public static float area(int x1, int y1, int x2, int y2, int x3, int y3) {
            return (float) Math.abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0);
        }
     
        public static boolean isPrime(int n) {
            // Corner cases
            if (n <= 1)
                return false;
            if (n <= 3)
                return true;
     
            // This is checked so that we can skip 
            // middle five numbers in below loop
            if (n % 2 == 0 || n % 3 == 0)
                return false;
     
            for (int i = 5; i * i <= n; i = i + 6)
                if (n % i == 0 || n % (i + 2) == 0)
                    return false;
     
            return true;
        }
     
        //merge Sort
     
        static long sort(int a[])
        {  int n=a.length;
            int b[]=new int[n];    
            return mergeSort(a,b,0,n-1);}
        static long mergeSort(int a[],int b[],long left,long right)
        { long c=0;if(left<right)
         {   long mid=left+(right-left)/2;
             c= mergeSort(a,b,left,mid);
             c+=mergeSort(a,b,mid+1,right);
             c+=merge(a,b,left,mid+1,right); }    
            return c;     }
        static long merge(int a[],int  b[],long left,long mid,long right)
        {long c=0;int i=(int)left;int j=(int)mid; int k=(int)left;
        while(i<=(int)mid-1&&j<=(int)right)
        { if(a[i]>a[j]) {b[k++]=a[i++]; }
        else    { b[k++]=a[j++];c+=mid-i;}}
        while (i <= (int)mid - 1)   b[k++] = a[i++]; 
        while (j <= (int)right) b[k++] = a[j++];
        for (i=(int)left; i <= (int)right; i++) 
            a[i] = b[i];  return c;  }
     
        // To Get Input
        // Some Buffer Methods
     
        public static void InputReader(InputStream stream1) {
            stream = stream1;
        }
     
        private static boolean isWhitespace(int c) {
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }
     
        private static boolean isEndOfLine(int c) {
            return c == '\n' || c == '\r' || c == -1;
        }
     
        private static int read() {
            if (numChars == -1)
                throw new InputMismatchException();
            if (curChar >= numChars) {
                curChar = 0;
                try {
                    numChars = stream.read(buf);
                } catch (IOException e) {
                    throw new InputMismatchException();
                }
                if (numChars <= 0)
                    return -1;
            }
            return buf[curChar++];
        }
     
        private static int nextInt() {
            int c = read();
            while (isSpaceChar(c))
                c = read();
            int sgn = 1;
            if (c == '-') {
                sgn = -1;
                c = read();
            }
            int res = 0;
            do {
                if (c < '0' || c > '9')
                    throw new InputMismatchException();
                res *= 10;
                res += c - '0';
                c = read();
            } while (!isSpaceChar(c));
            return res * sgn;
        }
     
        private static long nextLong() {
            int c = read();
            while (isSpaceChar(c))
                c = read();
            int sgn = 1;
            if (c == '-') {
                sgn = -1;
                c = read();
            }
            long res = 0;
            do {
                if (c < '0' || c > '9')
                    throw new InputMismatchException();
                res *= 10;
                res += c - '0';
                c = read();
            } while (!isSpaceChar(c));
            return res * sgn;
        }
     
        private static String nextToken() {
            int c = read();
            while (isSpaceChar(c))
                c = read();
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isSpaceChar(c));
            return res.toString();
        }
     
        private static String nextLine() {
            int c = read();
            while (isSpaceChar(c))
                c = read();
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isEndOfLine(c));
            return res.toString();
        }
     
        private static int[] nextIntArray(int n) {
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = nextInt();
            }
            return arr;
        }
     
        private static int[][] next2dArray(int n, int m) {
            int[][] arr = new int[n][m];
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    arr[i][j] = nextInt();
                }
            }
            return arr;
        }
     
        private static long[] nextLongArray(int n) {
            long[] arr = new long[n];
            for (int i = 0; i < n; i++) {
                arr[i] = nextLong();
            }
            return arr;
        }
     
        private static void pArray(int[] arr) {
            for (int i = 0; i < arr.length; i++) {
                pw.print(arr[i] + " ");
            }
            pw.println();
            return;
        }
     
        private static void pArray(long[] arr) {
            for (int i = 0; i < arr.length; i++) {
                pw.print(arr[i] + " ");
            }
            pw.println();
            return;
        }
     
        private static void pArray(boolean[] arr) {
            for (int i = 0; i < arr.length; i++) {
                pw.print(arr[i] + " ");
            }
            pw.println();
            return;
        }
     
        private static boolean isSpaceChar(int c) {
            if (filter != null)
                return filter.isSpaceChar(c);
            return isWhitespace(c);
        }
     
        private interface SpaceCharFilter {
            public boolean isSpaceChar(int ch);
        }
            
            
        }