#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)
#define pp pair<int,int>
#define ll long long
#define ld long double
int inf=100000000;
ll INF=4000000000000000000;
ll MOD=1000000007;


int main() {
  while (true){
    ll a;
    cin >> a;
    if (a==0) return 0;
    ll b=a;
    ll ans=1;
    for (ll i=2;i<inf;i++){
      if (i*i>a) break;
      ll aa=1,m=1;
      while (true){
        if (b%i==0) aa+=pow(i,m);
        else break;
        b=b/i;
        m++; 
      }
      ans=ans*aa;
    }
    if (b!=1) ans=ans*(1+b);
    //cout << "88888" << " " << ans << endl;
    if (ans-a==a) cout << "perfect number" << endl;
    if (ans-a>a) cout << "abundant number" << endl;
    if (ans-a<a) cout << "deficient number" << endl;
  }
}


### Prompt

Please create a solution in Cpp to the following problem:

Let S be the sum of divisors of an integer N excluding the number itself. When N = S, N is called a perfect number, when N> S, N is called a defendant number, and when N <S, N is called an abundant number. Create a program that determines whether a given integer is a perfect number, a missing number, or an abundant number.

Be careful not to exceed the program execution time.



Input

The input consists of a sequence of datasets. The number of datasets is 100 or less.

Each dataset consists of one row containing only the integer N (0 <N ≤ 100000000).

After the last dataset, there is a line marked 0 that marks the end of the input.

Output

For each dataset, print the string "` perfect number` "if the integer N is a perfect number," `deficient number`" if it is a missing number, or "` abundant number` "if it is an abundant number. ..

Example

Input

1
2
3
4
6
12
16
28
33550336
99999998
99999999
100000000
0


Output

deficient number
deficient number
deficient number
deficient number
perfect number
abundant number
deficient number
perfect number
perfect number
deficient number
deficient number
abundant number

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)
#define pp pair<int,int>
#define ll long long
#define ld long double
int inf=100000000;
ll INF=4000000000000000000;
ll MOD=1000000007;


int main() {
  while (true){
    ll a;
    cin >> a;
    if (a==0) return 0;
    ll b=a;
    ll ans=1;
    for (ll i=2;i<inf;i++){
      if (i*i>a) break;
      ll aa=1,m=1;
      while (true){
        if (b%i==0) aa+=pow(i,m);
        else break;
        b=b/i;
        m++; 
      }
      ans=ans*aa;
    }
    if (b!=1) ans=ans*(1+b);
    //cout << "88888" << " " << ans << endl;
    if (ans-a==a) cout << "perfect number" << endl;
    if (ans-a>a) cout << "abundant number" << endl;
    if (ans-a<a) cout << "deficient number" << endl;
  }
}


```