/*
AizuOnline A2001
Title:Perfect Number
*/
#include <stdio.h>
// Select Below
//#include <stdlib.h>
//#include <string.h>
//#include <float.h>
//#include <math.h>
//#include <limits.h>
//Global data section
int primes[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
	      101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,
	      211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,
	      307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,
	      401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,
	      503,509,521,523,541,547,557,563,569,571,577,587,593,599,
	      601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,
	      701,709,719,727,733,739,743,751,757,761,769,773,787,797,
	      809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,
	      907,911,919,929,937,941,947,953,967,971,977,983,991,997};

int perfect_no[]={6,  28,  496,  8128,  33550336};
int n;

int next_div(int mind,int x)
{
  int i;

  for(i=0;i<sizeof(primes)/sizeof(int);i++)
    if(primes[i]>mind)
      break;
  //printf("%d\n",primes[i]);
  for(;i<sizeof(primes)/sizeof(int);i++)
    if((x % primes[i])==0)
       return(primes[i]);

  return(mind+2);
}
int devide_times(int x,int a)
{
  if(x % a)
    return(0);
  return(1+devide_times(x/a,a)); 
}
int bunsi,bunbo;
int expt(int x,int y)
{
  if(y==0)
    return(1);
  return(x*expt(x,y-1));
}

int chk_deficient_or_abundant(int num)
{
  int divp;  // nankai prime de wareruka
  int prime=2; // 2,3,5,7...
  int nextp;
  int bunsi=1,bunbo=1;

  while(1)
    {
      divp=devide_times(num,prime);
      
      //printf("%d %d %dtimes\n",num,prime,divp);
      if(prime==2 && divp==0)
	return(-1);

      num /= expt(prime,divp);  
      if(num!=1)
	nextp=next_div(prime,num);

      if(divp != 1)
	{
	  //printf(":%d %d %dtimes %d\n",num,prime,divp,expt(prime,divp+1)-1);
	  bunsi *= (expt(prime,divp+1)-1)/(prime-1);
	  bunbo *= expt(prime,divp);
	}
      else
	{
	  bunsi *= (prime+1);
	  bunbo *= prime;
	}
      //printf("n:%d\n",nextp);
      //edakari
      if(bunsi*nextp/(bunbo*(nextp-1))<2)
	return(-1);
      if(bunsi/bunbo>=2) 
	return(1);
      else if(num==1)
	return(-1);

       prime=nextp;
     }
} 

main()
{
  int i,ret;

  while(EOF!=scanf("%d",&n) && n)
    {
      for(i=0;i<sizeof(perfect_no)/sizeof(int);i++)
	{
	  if(perfect_no[i]==n)
	    {
	      printf("perfect number\n");
	      goto NEXT;
	    }
	}
      ret=chk_deficient_or_abundant(n);

      if(ret==-1)
	printf("deficient number\n");
      else if(ret==1)
	printf("abundant number\n");
      else
	printf("FUMEI number\n");
	NEXT:
	  ;
    }
return(0);
}