code: def stirling1(n, k):
      """
      Stirling number of the first kind.
      """
      if n < 0 or k < 0:
          raise ValueError
      if k >= n:
          return MPZ(n == k)
      if k < 1:
          return MPZ_ZERO
      L = [MPZ_ZERO] * (k + 1)
      L[1] = MPZ_ONE
      for m in xrange(2, n + 1):
          for j in xrange(min(k, m), 0, -1):
              L[j] = (m - 1) * L[j] + L[j - 1]
      return (-1) ** (n + k) * L[k]
  
imports: import math
  from bisect import bisect
  from .backend import xrange
  from .backend import BACKEND, gmpy, sage, sage_utils, MPZ, MPZ_ONE, MPZ_ZERO
label_desc: Use image node_id 25 for calling a global function with example usage: stirling1(n, k) and returns: unknown, MPZ, MPZ_ZERO